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
This commit is contained in:
Jan Hubicka 2015-12-01 20:14:44 +01:00 committed by Jan Hubicka
parent 8c86248e58
commit 9dc39706b4
4 changed files with 28 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2015-12-01 Jan Hubicka <hubicka@ucw.cz>
* c-common.c (parse_optimize_options): Do not silently ignore
-fstrict-aliasing changes.
2015-12-01 Jan Hubicka <hubicka@ucw.cz>
* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.

View file

@ -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;
}

View file

@ -1,3 +1,7 @@
2015-12-01 Jan Hubicka <hubicka@ucw.cz>
* gcc.c-torture/execute/alias-1.c: New testcase.
2015-12-01 Marek Polacek <polacek@redhat.com>
PR tree-optimization/64769

View file

@ -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 ();
}