diff options
author | Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> | 2018-05-04 17:58:38 +0000 |
---|---|---|
committer | Pekka Jääskeläinen <visit0r@gcc.gnu.org> | 2018-05-04 17:58:38 +0000 |
commit | 77c42d456e28d04b684a1774264a2d7be816676b (patch) | |
tree | 6c3f279e9989f59aa9fdbc6f925a10346b438171 | |
parent | 1c72513315c93a968acfdc5000b2f237480dbcba (diff) | |
download | gcc-77c42d456e28d04b684a1774264a2d7be816676b.zip gcc-77c42d456e28d04b684a1774264a2d7be816676b.tar.gz gcc-77c42d456e28d04b684a1774264a2d7be816676b.tar.bz2 |
[BRIGFE] allow controlling strict aliasing from cmd line
From-SVN: r259948
-rw-r--r-- | gcc/brig/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/brig/brig-lang.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog index c68c8dd..40a7156 100644 --- a/gcc/brig/ChangeLog +++ b/gcc/brig/ChangeLog @@ -1,5 +1,10 @@ 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> + * brig/brig-lang.c: Allow controlling strict aliasing from + cmd line. + +2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> + * brig/brigfrontend/brig-code-entry-handler.cc: The modulo in ID computation should not be needed. diff --git a/gcc/brig/brig-lang.c b/gcc/brig/brig-lang.c index 030d76a..58b98fd 100644 --- a/gcc/brig/brig-lang.c +++ b/gcc/brig/brig-lang.c @@ -167,9 +167,15 @@ brig_langhook_post_options (const char **pfilename ATTRIBUTE_UNUSED) if (flag_excess_precision_cmdline == EXCESS_PRECISION_DEFAULT) flag_excess_precision_cmdline = EXCESS_PRECISION_STANDARD; - /* gccbrig casts pointers around like crazy, TBAA produces - broken code if not force disabling it. */ - flag_strict_aliasing = 0; + /* gccbrig casts pointers around like crazy, TBAA might produce broken + code if not disabling it by default. Some PRM conformance tests such + as prm/core/memory/ordinary/ld/ld_u16 fail currently with strict + aliasing (to fix). It can be enabled from the command line for cases + that are known not to break the C style aliasing requirements. */ + if (!global_options_set.x_flag_strict_aliasing) + flag_strict_aliasing = 0; + else + flag_strict_aliasing = global_options.x_flag_strict_aliasing; /* Returning false means that the backend should be used. */ return false; |