Commit fde155a7 by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/35328 (ICE with firstprivate variable with invalid destructor)

	PR c++/35328
	* semantics.c (finish_omp_clauses): Look through NOP_EXPR even
	if errorcount.

	* g++.dg/gomp/pr35328.C: New test.

From-SVN: r133087
parent 85b20612
2008-03-10 Jakub Jelinek <jakub@redhat.com>
PR c++/35328
* semantics.c (finish_omp_clauses): Look through NOP_EXPR even
if errorcount.
PR c++/35337
* semantics.c (finish_omp_clauses): Use %qD instead of %qE for
DECL_P in not a variable and appears more than once error messages.
......
......@@ -3667,7 +3667,7 @@ finish_omp_clauses (tree clauses)
complete_ctor_identifier,
t, inner_type, LOOKUP_NORMAL);
if (targetm.cxx.cdtor_returns_this ())
if (targetm.cxx.cdtor_returns_this () || errorcount)
/* Because constructors and destructors return this,
the call will have been cast to "void". Remove the
cast here. We would like to use STRIP_NOPS, but it
......@@ -3689,7 +3689,7 @@ finish_omp_clauses (tree clauses)
t = build_special_member_call (t, complete_dtor_identifier,
NULL, inner_type, LOOKUP_NORMAL);
if (targetm.cxx.cdtor_returns_this ())
if (targetm.cxx.cdtor_returns_this () || errorcount)
/* Because constructors and destructors return this,
the call will have been cast to "void". Remove the
cast here. We would like to use STRIP_NOPS, but it
......
2008-03-10 Jakub Jelinek <jakub@redhat.com>
PR c++/35328
* g++.dg/gomp/pr35328.C: New test.
PR c++/35337
* g++.dg/gomp/pr35337.C: New test.
// PR c++/35328
// { dg-do compile }
// { dg-options "-fopenmp" }
struct A
{
~A ()(); // { dg-error "declared as function returning a function" }
};
struct B
{
B ()(); // { dg-error "declared as function returning a function" }
};
struct C
{
C ();
C (const C &)(); // { dg-error "declared as function returning a function" }
};
void
foo ()
{
A a;
B b;
C c;
#pragma omp parallel firstprivate (a)
;
#pragma omp parallel private (b)
;
#pragma omp parallel firstprivate (c)
;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment