aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/go-lang.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2013-11-06 15:14:28 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-11-06 15:14:28 +0000
commit1d2217b6ab9ca6f2dd005e6f7ac22296532e6f61 (patch)
tree871252222629feb4c39607742bae1bfae99fd877 /gcc/go/go-lang.c
parent9f2b860bed25db61d9093d87fb85ab2740823346 (diff)
downloadgcc-1d2217b6ab9ca6f2dd005e6f7ac22296532e6f61.zip
gcc-1d2217b6ab9ca6f2dd005e6f7ac22296532e6f61.tar.gz
gcc-1d2217b6ab9ca6f2dd005e6f7ac22296532e6f61.tar.bz2
go-lang.c (go_langhook_post_options): If -fisolate-erroneous-paths was turned on by an optimization option, turn it off.
* go-lang.c (go_langhook_post_options): If -fisolate-erroneous-paths was turned on by an optimization option, turn it off. From-SVN: r204459
Diffstat (limited to 'gcc/go/go-lang.c')
-rw-r--r--gcc/go/go-lang.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index 37d61d1..14080f0 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -268,6 +268,12 @@ go_langhook_post_options (const char **pfilename ATTRIBUTE_UNUSED)
if (flag_excess_precision_cmdline == EXCESS_PRECISION_DEFAULT)
flag_excess_precision_cmdline = EXCESS_PRECISION_STANDARD;
+ /* The isolate_erroneous_paths optimization can change a nil
+ dereference from a panic to a trap, so we have to disable it for
+ Go, even though it is normally enabled by -O2. */
+ if (!global_options_set.x_flag_isolate_erroneous_paths)
+ global_options.x_flag_isolate_erroneous_paths = 0;
+
/* Returning false means that the backend should be used. */
return false;
}