From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 52938 invoked by alias); 10 Apr 2015 01:28:21 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 52179 invoked by uid 48); 10 Apr 2015 01:28:12 -0000 From: "ron at vaniwaarden dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/65728] New: template instantiation complains of sizeof failing due to incomplete definition Date: Fri, 10 Apr 2015 01:28:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 4.8.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ron at vaniwaarden dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg00776.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65728 Bug ID: 65728 Summary: template instantiation complains of sizeof failing due to incomplete definition Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ron at vaniwaarden dot org Following code fails to compile in 4.8.2, complaining about an incomplete definition. Definition is complete and it also compiled in 4.2.1 but also fails in 4.6.3: #include struct S { void method(){} }; template class genpool { }; template class mempool { private: genpool p; }; template class functor { private: obj& o; mthd m; static mempool > pool; }; template mempool > functor::pool; int main() { typedef void (S::*m)(); typedef functor fctr; fctr f; }