aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-02-08 19:23:03 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-02-08 19:23:03 +0100
commitf68bc23fdd160514737ddbc420ec7b3de7358286 (patch)
treed9afe29fd81953b6f1aaa583e19904cb9e92fb04 /gcc
parentcfac5ed23659ca3f2fd168e5a639a14a71880461 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/parser.c1
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr59627.C14
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)
+ ;
+}