diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-02-08 19:23:03 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-02-08 19:23:03 +0100 |
commit | f68bc23fdd160514737ddbc420ec7b3de7358286 (patch) | |
tree | d9afe29fd81953b6f1aaa583e19904cb9e92fb04 | |
parent | cfac5ed23659ca3f2fd168e5a639a14a71880461 (diff) | |
download | gcc-f68bc23fdd160514737ddbc420ec7b3de7358286.zip gcc-f68bc23fdd160514737ddbc420ec7b3de7358286.tar.gz gcc-f68bc23fdd160514737ddbc420ec7b3de7358286.tar.bz2 |
re PR c++/59627 (ICE with OpenMP "declare reduction" and -flto)
PR c++/59627
* parser.c (cp_parser_omp_declare_reduction): Set assembler name
of the DECL_OMP_DECLARE_REDUCTION_P decls.
* g++.dg/gomp/pr59627.C: New test.
From-SVN: r233225
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/gomp/pr59627.C | 14 |
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 32fbe6f..f7a76ff 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2016-02-08 Jakub Jelinek <jakub@redhat.com> + + PR c++/59627 + * parser.c (cp_parser_omp_declare_reduction): Set assembler name + of the DECL_OMP_DECLARE_REDUCTION_P decls. + 2016-02-08 Marek Polacek <polacek@redhat.com> PR c++/69688 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index d03b0c9..b7bfa77 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -36080,6 +36080,7 @@ cp_parser_omp_declare_reduction (cp_parser *parser, cp_token *pragma_tok, DECL_DECLARED_INLINE_P (fndecl) = 1; DECL_IGNORED_P (fndecl) = 1; DECL_OMP_DECLARE_REDUCTION_P (fndecl) = 1; + SET_DECL_ASSEMBLER_NAME (fndecl, get_identifier ("<udr>")); DECL_ATTRIBUTES (fndecl) = tree_cons (get_identifier ("gnu_inline"), NULL_TREE, DECL_ATTRIBUTES (fndecl)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c289126..64f512d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2016-02-08 Jakub Jelinek <jakub@redhat.com> + PR c++/59627 + * g++.dg/gomp/pr59627.C: New test. + PR ipa/69239 * g++.dg/ipa/pr69239.C: New test. diff --git a/gcc/testsuite/g++.dg/gomp/pr59627.C b/gcc/testsuite/g++.dg/gomp/pr59627.C new file mode 100644 index 0000000..ab6f44d --- /dev/null +++ b/gcc/testsuite/g++.dg/gomp/pr59627.C @@ -0,0 +1,14 @@ +// PR c++/59627 +// { dg-do compile { target lto } } +// { dg-options "-fopenmp -flto" } + +struct A { A () : i (0) {} int i; }; + +void +foo () +{ + A a; + #pragma omp declare reduction (+: A: omp_out.i += omp_in.i) + #pragma omp parallel reduction (+: a) + ; +} |