------- Comment #3 from theodore dot papadopoulo at sophia dot inria dot fr  
2007-04-23 17:01 -------
Sorry to have added you without asking Jakub, but it looks like you are one of
the person that deals with OpenMP.... and this bug seems to have been unnoticed
up to now...

It seems that this problem is related to the template instanciation mecanism
(as far as I can tell). 

The trouble is that finish_omp_clauses ensures that the variable b is complete
by calling require_complete_type but since we are in template instanciation
mode, this function returns immediately without doing anything. Further in
finish_omp_clauses (semantics.c:3655), assuming that the type is complete the
code tries to build a call to a (copy?) constructor, build_call calls
complete_type_or_else which calls complete_type which calls
instantiate_class_template which returns immediately because TYPE_BEING_DEFINED
is true.... so complete_type_or_else complains.

Is there a way to defer the completeness check to after the type has been
instantiated ??


-- 

theodore dot papadopoulo at sophia dot inria dot fr changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at redhat dot com
            Summary|g++ does not accept some    |g++ does not accept some
                   |OpenMP code                 |OpenMP code


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31598

Reply via email to