aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Jääskeläinen <pekka.jaaskelainen@parmance.com>2018-05-04 18:01:11 +0000
committerPekka Jääskeläinen <visit0r@gcc.gnu.org>2018-05-04 18:01:11 +0000
commit60a3d46c17e7cee099043c1564181ab2f3c21d41 (patch)
tree5cde720925ab66fc52b317a5f1873932735679b9
parent77c42d456e28d04b684a1774264a2d7be816676b (diff)
downloadgcc-60a3d46c17e7cee099043c1564181ab2f3c21d41.zip
gcc-60a3d46c17e7cee099043c1564181ab2f3c21d41.tar.gz
gcc-60a3d46c17e7cee099043c1564181ab2f3c21d41.tar.bz2
[BRIGFE] do not allow optimizations based on known C builtins
It can break inputs that have similarly named functions. From-SVN: r259949
-rw-r--r--gcc/brig/ChangeLog5
-rw-r--r--gcc/brig/brig-lang.c16
2 files changed, 12 insertions, 9 deletions
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog
index 40a7156..7da06bc 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: Do not allow optimizations based on known C
+ builtins.
+
+2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
+
* brig/brig-lang.c: Allow controlling strict aliasing from
cmd line.
diff --git a/gcc/brig/brig-lang.c b/gcc/brig/brig-lang.c
index 58b98fd..3c4d4bd 100644
--- a/gcc/brig/brig-lang.c
+++ b/gcc/brig/brig-lang.c
@@ -136,6 +136,8 @@ brig_langhook_init_options_struct (struct gcc_options *opts)
opts->x_flag_signed_zeros = 1;
opts->x_optimize = 3;
+
+ flag_no_builtin = 1;
}
/* Handle Brig specific options. Return 0 if we didn't do anything. */
@@ -635,9 +637,11 @@ builtin_type_for_size (int size, bool unsignedp)
static void
def_builtin_1 (enum built_in_function fncode, const char *name,
- enum built_in_class fnclass, tree fntype, tree libtype,
- bool both_p, bool fallback_p, bool nonansi_p,
- tree fnattrs, bool implicit_p)
+ enum built_in_class fnclass ATTRIBUTE_UNUSED,
+ tree fntype, tree libtype ATTRIBUTE_UNUSED,
+ bool both_p ATTRIBUTE_UNUSED, bool fallback_p,
+ bool nonansi_p ATTRIBUTE_UNUSED, tree fnattrs,
+ bool implicit_p)
{
tree decl;
const char *libname;
@@ -650,12 +654,6 @@ def_builtin_1 (enum built_in_function fncode, const char *name,
(fallback_p ? libname : NULL),
fnattrs);
- if (both_p
- && !flag_no_builtin
- && !(nonansi_p && flag_no_nonansi_builtin))
- add_builtin_function (libname, libtype, fncode, fnclass,
- NULL, fnattrs);
-
set_builtin_decl (fncode, decl, implicit_p);
}