public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/54198] New: [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
@ 2012-08-08 10:22 markus at trippelsdorf dot de
  2012-08-08 11:49 ` [Bug c++/54198] " rguenth at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: markus at trippelsdorf dot de @ 2012-08-08 10:22 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 54198
           Summary: [4.8 Regression]  "error: invalid use of incomplete
                    type" when building Chromium
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: markus@trippelsdorf.de


Chromium (22.0.1229.0) fails to build with current gcc trunk:

In file included from third_party/WebKit/Source/WTF/wtf/RefPtr.h:28:0,
                 from third_party/WebKit/Source/WTF/wtf/VectorTraits.h:25,
                 from third_party/WebKit/Source/WTF/wtf/Vector.h:30,
                 from third_party/WebKit/Source/WTF/wtf/text/StringImpl.h:31,
                 from third_party/WebKit/Source/WTF/wtf/text/WTFString.h:29,
                 from
third_party/WebKit/Source/WebCore/platform/text/PlatformString.h:28,
                 from third_party/WebKit/Source/WebCore/platform/KURL.h:30,
                 from third_party/WebKit/Source/WebCore/platform/KURLHash.h:29,
                 from third_party/WebKit/Source/WebCore/css/CSSRule.h:26,
                 from third_party/WebKit/Source/WebCore/css/CSSImportRule.h:25,
                 from out/Release/obj/gen/webkit/bindings/V8CSSImportRule.h:24,
                 from
out/Release/obj/gen/webcore/bindings/V8CSSImportRule.cpp:22,
                 from
out/Release/obj/gen/webkit/bindings/V8DerivedSources03.cpp:31:
third_party/WebKit/Source/WTF/wtf/PassRefPtr.h: In instantiation of ‘void
WTF::refIfNotNull(T*) [with T = WebCore::MetadataCallback]’:
third_party/WebKit/Source/WTF/wtf/PassRefPtr.h:60:43:   required from
‘WTF::PassRefPtr<T>::PassRefPtr(T*) [with T = WebCore::MetadataCallback]’
third_party/WebKit/Source/WebCore/Modules/filesystem/Entry.h:54:69:   required
from here
third_party/WebKit/Source/WTF/wtf/PassRefPtr.h:46:13: error: invalid use of
incomplete type ‘class WebCore::MetadataCallback’
             ptr->ref();
             ^
In file included from
third_party/WebKit/Source/WebCore/Modules/filesystem/DOMFileSystem.h:37:0,
                 from out/Release/obj/gen/webkit/bindings/V8DOMFileSystem.h:26,
                 from
out/Release/obj/gen/webcore/bindings/V8DOMFileSystem.cpp:22,
                 from
out/Release/obj/gen/webkit/bindings/V8DerivedSources03.cpp:54:
third_party/WebKit/Source/WebCore/Modules/filesystem/DOMFileSystemBase.h:52:7:
error: forward declaration of ‘class WebCore::MetadataCallback’
 class MetadataCallback;
       ^

The testcase is too big to attach (416KB bziped).

I've reduced it with C-reduce:

markus@x4 tmp % cat test.ii
template <typename T> void
refIfNotNull (T* p1)
{
    p1->ref;
}
template <typename T> struct A
{
    A (T* p1)
    {
        refIfNotNull (p1);
    }
};
class B;
class C
{
    void getParent (A <B> = 0);
};

markus@x4 tmp % g++ -c test.ii
test.ii: In instantiation of ‘void refIfNotNull(T*) [with T = B]’:
test.ii:10:9:   required from ‘A<T>::A(T*) [with T = B]’
test.ii:16:29:   required from here
test.ii:4:5: error: invalid use of incomplete type ‘class B’
     p1->ref;
     ^
test.ii:13:7: error: forward declaration of ‘class B’
 class B;
       ^


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
@ 2012-08-08 11:49 ` rguenth at gcc dot gnu.org
  2012-08-08 11:58 ` markus at trippelsdorf dot de
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-08 11:49 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
  2012-08-08 11:49 ` [Bug c++/54198] " rguenth at gcc dot gnu.org
@ 2012-08-08 11:58 ` markus at trippelsdorf dot de
  2012-08-08 15:26 ` pinskia at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: markus at trippelsdorf dot de @ 2012-08-08 11:58 UTC (permalink / raw)
  To: gcc-bugs

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

Markus Trippelsdorf <markus at trippelsdorf dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #1 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-08-08 11:58:23 UTC ---
Started with revision 189850:

1f43fa9ad872fac2b686903267a08bb5c8beea03 is the first bad commit
commit 1f43fa9ad872fac2b686903267a08bb5c8beea03
Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Wed Jul 25 14:56:50 2012 +0000

        * cp-tree.h (tsubst_flags): Remove tf_no_access_control.
        * call.c (standard_conversion): Don't set it.
        * class.c (resolve_address_of_overloaded_function): Don't check it.
        * decl.c (check_default_argument): Call
        perform_implicit_conversion_flags.

Clang++ and Intel's icpc compile the testcase without problems.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
  2012-08-08 11:49 ` [Bug c++/54198] " rguenth at gcc dot gnu.org
  2012-08-08 11:58 ` markus at trippelsdorf dot de
@ 2012-08-08 15:26 ` pinskia at gcc dot gnu.org
  2012-08-12 22:58 ` daniel.kruegler at googlemail dot com
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-08-08 15:26 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-08-08 15:26:43 UTC ---
I actually think GCC is correct, A <B> causes all member functions to be
instantiated.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
                   ` (2 preceding siblings ...)
  2012-08-08 15:26 ` pinskia at gcc dot gnu.org
@ 2012-08-12 22:58 ` daniel.kruegler at googlemail dot com
  2012-08-24 12:37 ` markus at trippelsdorf dot de
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: daniel.kruegler at googlemail dot com @ 2012-08-12 22:58 UTC (permalink / raw)
  To: gcc-bugs

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

Daniel Krügler <daniel.kruegler at googlemail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |daniel.kruegler at
                   |                            |googlemail dot com

--- Comment #3 from Daniel Krügler <daniel.kruegler at googlemail dot com> 2012-08-12 22:58:09 UTC ---
(In reply to comment #2)
> I actually think GCC is correct, A <B> causes all member functions to be
> instantiated.

I disagree, the instantiation of A<B> shall only instantiate all member
*declarations*, but not the *definitions* of unused members.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
                   ` (3 preceding siblings ...)
  2012-08-12 22:58 ` daniel.kruegler at googlemail dot com
@ 2012-08-24 12:37 ` markus at trippelsdorf dot de
  2012-08-24 14:04 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: markus at trippelsdorf dot de @ 2012-08-24 12:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-08-24 12:37:21 UTC ---
Ping. Any update on this issue?


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
                   ` (4 preceding siblings ...)
  2012-08-24 12:37 ` markus at trippelsdorf dot de
@ 2012-08-24 14:04 ` redi at gcc dot gnu.org
  2012-09-04 19:35 ` jason at gcc dot gnu.org
  2012-09-04 19:37 ` jason at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: redi at gcc dot gnu.org @ 2012-08-24 14:04 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-08-24
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
                   ` (5 preceding siblings ...)
  2012-08-24 14:04 ` redi at gcc dot gnu.org
@ 2012-09-04 19:35 ` jason at gcc dot gnu.org
  2012-09-04 19:37 ` jason at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: jason at gcc dot gnu.org @ 2012-09-04 19:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Jason Merrill <jason at gcc dot gnu.org> 2012-09-04 19:35:08 UTC ---
Author: jason
Date: Tue Sep  4 19:35:02 2012
New Revision: 190949

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190949
Log:
    PR c++/54198
    * decl.c (check_default_argument): Set cp_unevaluated_operand
    around call to perform_implicit_conversion_flags.

Added:
    trunk/gcc/testsuite/g++.dg/template/defarg15.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/decl.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/54198] [4.8 Regression]  "error: invalid use of incomplete type" when building Chromium
  2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
                   ` (6 preceding siblings ...)
  2012-09-04 19:35 ` jason at gcc dot gnu.org
@ 2012-09-04 19:37 ` jason at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: jason at gcc dot gnu.org @ 2012-09-04 19:37 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> 2012-09-04 19:37:34 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-09-04 19:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-08 10:22 [Bug c++/54198] New: [4.8 Regression] "error: invalid use of incomplete type" when building Chromium markus at trippelsdorf dot de
2012-08-08 11:49 ` [Bug c++/54198] " rguenth at gcc dot gnu.org
2012-08-08 11:58 ` markus at trippelsdorf dot de
2012-08-08 15:26 ` pinskia at gcc dot gnu.org
2012-08-12 22:58 ` daniel.kruegler at googlemail dot com
2012-08-24 12:37 ` markus at trippelsdorf dot de
2012-08-24 14:04 ` redi at gcc dot gnu.org
2012-09-04 19:35 ` jason at gcc dot gnu.org
2012-09-04 19:37 ` jason at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).