From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15131 invoked by alias); 27 Jun 2013 23:43: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 15102 invoked by uid 48); 27 Jun 2013 23:43:18 -0000 From: "luto at mit dot edu" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/57746] New: rejected valid specialization of member function of class template (I think) Date: Thu, 27 Jun 2013 23:43: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.7.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: luto at mit dot edu 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: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-06/txt/msg01735.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D57746 Bug ID: 57746 Summary: rejected valid specialization of member function of class template (I think) Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: luto at mit dot edu Note: I could easily be wrong here... template struct X { static int val; static void func(); }; extern template struct X; template<> int X::val =3D 5; // OK template<> void X::func() {} // Error g++ 4.7.2 and some pre-4.8 build say "error: specialization of =E2=80=98sta= tic void X::func() [with T =3D int]=E2=80=99 after instantiation". Oddly, both a= ccept the specialization of val. clang++ rejects both. The relevant part of the standard is probably [temp.explicit.4], which says: A declaration of a function template, a member function or static data memb= er of a class template, or a member function template of a class or class temp= late shall precede an explicit instantiation of that entity. A definition of a c= lass template, a member class of a class template, or a member class template of= a class or class template shall precede an explicit instantiation of that ent= ity unless the explicit instantiation is preceded by an explicit specialization= of the entity with the same template arguments. If the declaration of the expl= icit instantiation names an implicitly-declared special member function (Clause = 12), the program is ill-formed. The two specializations are definitions, not declarations, as far as I know= .=20 Therefore, [temp.explicit.4] shouldn't apply. >>From gcc-bugs-return-425357-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Jun 28 00:30:08 2013 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 6040 invoked by alias); 28 Jun 2013 00:30:08 -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 Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 5966 invoked by uid 48); 28 Jun 2013 00:30:04 -0000 From: "dscott at hmc dot edu" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/57747] New: The progress indicator always shows 38% Date: Fri, 28 Jun 2013 00:30: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.7.3 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dscott at hmc dot edu 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: 2013-06/txt/msg01736.txt.bz2 Content-length: 1030 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57747 Bug ID: 57747 Summary: The progress indicator always shows 38% Product: gcc Version: 4.7.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dscott at hmc dot edu We had a large project which repeatedly hit a compiler or linker error at 38%. The build is managed by CMake, and worked correctly before we introduced the bugs that caused the aforementioned compiler/linker errors. We finally fixed the bugs in our code, then re-ran CMake (clearing its cache), ran make clean, and then ran make. We were very confused to see the progress indicator always read 38%. We terminated compilation and did another make clean. We then allowed make to run all the way through --- and the build ran successfully from start to finish. However, at every single step along the way, the progress was reported as 38%.