From 9dc39706b4afc31623f28b71150cfd2bdadb2c24 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 1 Dec 2015 20:14:44 +0100 Subject: [PATCH] alias-1.c: New testcase. * gcc.c-torture/execute/alias-1.c: New testcase. * c-common.c: Do not silently ignore -fstrict-aliasing changes. From-SVN: r231125 --- gcc/ChangeLog | 5 +++++ gcc/c-family/c-common.c | 6 ------ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.c-torture/execute/alias-1.c | 19 +++++++++++++++++++ 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/execute/alias-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5aa3d6e3c8..f90b4cdfb8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-12-01 Jan Hubicka + + * c-common.c (parse_optimize_options): Do not silently ignore + -fstrict-aliasing changes. + 2015-12-01 Jan Hubicka * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET. diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 369574f44de..7a9e3b98b68 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -9988,7 +9988,6 @@ parse_optimize_options (tree args, bool attr_p) bool ret = true; unsigned opt_argc; unsigned i; - int saved_flag_strict_aliasing; const char **opt_argv; struct cl_decoded_option *decoded_options; unsigned int decoded_options_count; @@ -10081,8 +10080,6 @@ parse_optimize_options (tree args, bool attr_p) for (i = 1; i < opt_argc; i++) opt_argv[i] = (*optimize_args)[i]; - saved_flag_strict_aliasing = flag_strict_aliasing; - /* Now parse the options. */ decode_cmdline_options_to_array_default_mask (opt_argc, opt_argv, &decoded_options, @@ -10093,9 +10090,6 @@ parse_optimize_options (tree args, bool attr_p) targetm.override_options_after_change(); - /* Don't allow changing -fstrict-aliasing. */ - flag_strict_aliasing = saved_flag_strict_aliasing; - optimize_args->truncate (0); return ret; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ef5a175b43c..7fd8b554017 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-12-01 Jan Hubicka + + * gcc.c-torture/execute/alias-1.c: New testcase. + 2015-12-01 Marek Polacek PR tree-optimization/64769 diff --git a/gcc/testsuite/gcc.c-torture/execute/alias-1.c b/gcc/testsuite/gcc.c-torture/execute/alias-1.c new file mode 100644 index 00000000000..666e96f968a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/alias-1.c @@ -0,0 +1,19 @@ +int val; + +int *ptr = &val; +float *ptr2 = &val; + +__attribute__((optimize ("-fno-strict-aliasing"))) +typepun () +{ + *ptr2=0; +} + +main() +{ + *ptr=1; + typepun (); + if (*ptr) + __builtin_abort (); +} + -- 2.30.2