From 77c42d456e28d04b684a1774264a2d7be816676b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pekka=20J=C3=A4=C3=A4skel=C3=A4inen?= Date: Fri, 4 May 2018 17:58:38 +0000 Subject: [PATCH] [BRIGFE] allow controlling strict aliasing from cmd line From-SVN: r259948 --- gcc/brig/ChangeLog | 5 +++++ gcc/brig/brig-lang.c | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) 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; -- 2.30.2