]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
alias-1.c: New testcase.
authorMartin Liska <mliska@suse.cz>
Fri, 20 Jan 2017 12:03:55 +0000 (13:03 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Fri, 20 Jan 2017 12:03:55 +0000 (12:03 +0000)
* gcc.c-torture/execute/alias-1.c: New testcase. * c-common.c: Do not silently ignore -fstrict-aliasing changes.

2017-01-20  Martin Liska  <mliska@suse.cz>

Backport from mainline
2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

* c-common.c (parse_optimize_options): Do not silently ignore
-fstrict-aliasing changes.
2017-01-20  Martin Liska  <mliska@suse.cz>

Backport from mainline
2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

* gcc.c-torture/execute/alias-1.c: New testcase.

From-SVN: r244707

gcc/ChangeLog
gcc/c-family/c-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/alias-1.c [new file with mode: 0644]

index e92d48d6ef41e0a2b4bf020becc2267a0219b2a1..f9c24273fff77e9d78fd1ac6c62198c409b62e77 100644 (file)
@@ -1,3 +1,11 @@
+2017-01-20  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * c-common.c (parse_optimize_options): Do not silently ignore
+       -fstrict-aliasing changes.
+
 2017-01-20  Martin Liska  <mliska@suse.cz>
 
        Backport from mainline
index 1bf5d080034a115883c2172ff3aa83080fbe1d53..8d719c6f7f17013e3e964cde451654f91003c461 100644 (file)
@@ -9321,7 +9321,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;
@@ -9414,8 +9413,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,
@@ -9426,9 +9423,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;
 }
index 733321f35f703acfe1b15d637517f5d16a1cd4a7..975a1e5742245ce5a9357bfc382f1a3daa7f7372 100644 (file)
@@ -1,3 +1,10 @@
+2017-01-20  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * gcc.c-torture/execute/alias-1.c: New testcase.
+
 2017-01-20  Martin Liska  <mliska@suse.cz>
 
        Backport from mainline
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 (file)
index 0000000..666e96f
--- /dev/null
@@ -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 ();
+}
+