1/* Default common target hook functions. 2 Copyright (C) 2003-2020 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify it under 7the terms of the GNU General Public License as published by the Free 8Software Foundation; either version 3, or (at your option) any later 9version. 10 11GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12WARRANTY; without even the implied warranty of MERCHANTABILITY or 13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14for more details. 15 16You should have received a copy of the GNU General Public License 17along with GCC; see the file COPYING3. If not see 18<http://www.gnu.org/licenses/>. */ 19 20#include "config.h" 21#include "system.h" 22#include "coretypes.h" 23#include "tm.h" 24#include "common/common-target.h" 25#include "common/common-targhooks.h" 26#include "opts.h" 27 28/* Determine the exception handling mechanism for the target. */ 29 30enum unwind_info_type 31default_except_unwind_info (struct gcc_options *opts ATTRIBUTE_UNUSED) 32{ 33 /* Obey the configure switch to turn on sjlj exceptions. */ 34#ifdef CONFIG_SJLJ_EXCEPTIONS 35 if (CONFIG_SJLJ_EXCEPTIONS) 36 return UI_SJLJ; 37#endif 38 39 /* ??? Change all users to the hook, then poison this. */ 40#ifdef DWARF2_UNWIND_INFO 41 if (DWARF2_UNWIND_INFO) 42 return UI_DWARF2; 43#endif 44 45 return UI_SJLJ; 46} 47 48/* To be used by targets that force dwarf2 unwind enabled. */ 49 50enum unwind_info_type 51dwarf2_except_unwind_info (struct gcc_options *opts ATTRIBUTE_UNUSED) 52{ 53 /* Obey the configure switch to turn on sjlj exceptions. */ 54#ifdef CONFIG_SJLJ_EXCEPTIONS 55 if (CONFIG_SJLJ_EXCEPTIONS) 56 return UI_SJLJ; 57#endif 58 59 return UI_DWARF2; 60} 61 62/* To be used by targets that force sjlj unwind enabled. */ 63 64enum unwind_info_type 65sjlj_except_unwind_info (struct gcc_options *opts ATTRIBUTE_UNUSED) 66{ 67 return UI_SJLJ; 68} 69 70/* Default version of TARGET_HANDLE_OPTION. */ 71 72bool 73default_target_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED, 74 struct gcc_options *opts_set ATTRIBUTE_UNUSED, 75 const struct cl_decoded_option *decoded ATTRIBUTE_UNUSED, 76 location_t loc ATTRIBUTE_UNUSED) 77{ 78 return true; 79} 80 81/* Default version of TARGET_GET_VALID_OPTION_VALUES. */ 82 83vec<const char *> 84default_get_valid_option_values (int, const char *) 85{ 86 return vec<const char *> (); 87} 88 89const struct default_options empty_optimization_table[] = 90 { 91 { OPT_LEVELS_NONE, 0, NULL, 0 } 92 }; 93