diff options
author | Jan Hubicka <jh@suse.cz> | 2022-04-09 21:22:58 +0200 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2022-04-09 21:22:58 +0200 |
commit | 4943b75e9f06f0b64ed541430bb7fbccf55fc552 (patch) | |
tree | 1ec24df49da937dab46cb763acbe5889a3105151 | |
parent | aabb9a261ef060cf24fd626713f1d7d9df81aa57 (diff) | |
download | gcc-4943b75e9f06f0b64ed541430bb7fbccf55fc552.zip gcc-4943b75e9f06f0b64ed541430bb7fbccf55fc552.tar.gz gcc-4943b75e9f06f0b64ed541430bb7fbccf55fc552.tar.bz2 |
Update semantic_interposition flag at analysis time
This patch solves problem with FE first finalizing function and then adding
-fno-semantic-interposition flag (by parsing optimization attribute).
gcc/ChangeLog:
2022-04-09 Jan Hubicka <hubicka@ucw.cz>
PR ipa/103376
* cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
flag.
gcc/testsuite/ChangeLog:
2022-04-09 Jan Hubicka <hubicka@ucw.cz>
PR ipa/103376
* gcc.c-torture/compile/pr103376.c: New test.
-rw-r--r-- | gcc/cgraphunit.cc | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr103376.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cgraphunit.cc b/gcc/cgraphunit.cc index 01f4e28..bc3dc75 100644 --- a/gcc/cgraphunit.cc +++ b/gcc/cgraphunit.cc @@ -621,6 +621,7 @@ cgraph_node::analyze (void) tree decl = this->decl; location_t saved_loc = input_location; input_location = DECL_SOURCE_LOCATION (decl); + semantic_interposition = opt_for_fn (decl, flag_semantic_interposition); if (thunk) { diff --git a/gcc/testsuite/gcc.c-torture/compile/pr103376.c b/gcc/testsuite/gcc.c-torture/compile/pr103376.c new file mode 100644 index 0000000..8c14c3d --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr103376.c @@ -0,0 +1,9 @@ +/* { dg-additional-options "-Ofast" } */ +__attribute__ ((optimize ("no-associative-math"))) double +fn3 (double h, double l) +{ + return h + l; +} + +double fn3 (double, double) __attribute__ ((optimize ("O2,no-associative-math"))); + |