From: Pekka Jääskeläinen Date: Fri, 4 May 2018 17:58:38 +0000 (+0000) Subject: [BRIGFE] allow controlling strict aliasing from cmd line X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=77c42d456e28d04b684a1774264a2d7be816676b;p=gcc.git [BRIGFE] allow controlling strict aliasing from cmd line From-SVN: r259948 --- diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog index c68c8dd4757..40a715664fd 100644 --- a/gcc/brig/ChangeLog +++ b/gcc/brig/ChangeLog @@ -1,3 +1,8 @@ +2018-05-04 Pekka Jääskeläinen + + * brig/brig-lang.c: Allow controlling strict aliasing from + cmd line. + 2018-05-04 Pekka Jääskeläinen * brig/brigfrontend/brig-code-entry-handler.cc: The modulo in diff --git a/gcc/brig/brig-lang.c b/gcc/brig/brig-lang.c index 030d76a745e..58b98fd56a3 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;