Mercurial > hg > CbC > CbC_gcc
diff gcc/go/go-lang.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line diff
--- a/gcc/go/go-lang.c Thu Oct 25 07:37:49 2018 +0900 +++ b/gcc/go/go-lang.c Thu Feb 13 11:34:05 2020 +0900 @@ -1,5 +1,5 @@ /* go-lang.c -- Go frontend gcc interface. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of GCC. @@ -118,6 +118,7 @@ args.debug_escape_level = go_debug_escape_level; args.debug_escape_hash = go_debug_escape_hash; args.nil_check_size_threshold = TARGET_AIX ? -1 : 4096; + args.debug_optimization = go_debug_optimization; args.linemap = go_get_linemap(); args.backend = go_get_backend(); go_create_gogo (&args); @@ -292,12 +293,17 @@ go_add_search_path (dir); go_search_dirs.release (); - if (flag_excess_precision_cmdline == EXCESS_PRECISION_DEFAULT) - flag_excess_precision_cmdline = EXCESS_PRECISION_STANDARD; + if (flag_excess_precision == EXCESS_PRECISION_DEFAULT) + flag_excess_precision = EXCESS_PRECISION_STANDARD; /* Tail call optimizations can confuse uses of runtime.Callers. */ - if (!global_options_set.x_flag_optimize_sibling_calls) - global_options.x_flag_optimize_sibling_calls = 0; + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + flag_optimize_sibling_calls, 0); + + /* Partial inlining can confuses uses of runtime.Callers. + See https://gcc.gnu.org/PR91663. */ + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + flag_partial_inlining, 0); /* If the debug info level is still 1, as set in init_options, make sure that some debugging type is selected. */ @@ -306,18 +312,18 @@ global_options.x_write_symbols = PREFERRED_DEBUGGING_TYPE; /* We turn on stack splitting if we can. */ - if (!global_options_set.x_flag_split_stack - && targetm_common.supports_split_stack (false, &global_options)) - global_options.x_flag_split_stack = 1; + if (targetm_common.supports_split_stack (false, &global_options)) + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + flag_split_stack, 1); /* If stack splitting is turned on, and the user did not explicitly request function partitioning, turn off partitioning, as it confuses the linker when trying to handle partitioned split-stack code that calls a non-split-stack function. */ if (global_options.x_flag_split_stack - && global_options.x_flag_reorder_blocks_and_partition - && !global_options_set.x_flag_reorder_blocks_and_partition) - global_options.x_flag_reorder_blocks_and_partition = 0; + && global_options.x_flag_reorder_blocks_and_partition) + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + flag_reorder_blocks_and_partition, 0); /* Returning false means that the backend should be used. */ return false;