public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/60274] New: String as template parameter - regression in 4.8.2
@ 2014-02-19 13:53 ondrej.kolacek1 at centrum dot cz
  2014-02-19 14:03 ` [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3 rguenth at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: ondrej.kolacek1 at centrum dot cz @ 2014-02-19 13:53 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 60274
           Summary: String as template parameter - regression in 4.8.2
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ondrej.kolacek1 at centrum dot cz

Greetings, this issue happened to me with Debian's g++ so it is possible it is
just their bug but hopefully (well this is debatable :) ) it is not.


<begin file test.cpp>
typedef const char *const&  ProtocolIdType;
//typedef int ProtocolIdType;

template <ProtocolIdType protocolId>
class C {
public:
    typedef int ProtocolVersion;

    class D
    {
    public:
        ProtocolVersion GetProtocolVersion();
    };

};
template <ProtocolIdType protocolId>
typename C<protocolId>::ProtocolVersion C<protocolId>::D::GetProtocolVersion()
{
    return 1;
}

int main(void)
{
}
<end file test.cpp>

>g++ test.cpp
test.cpp:18:41: error: prototype for ‘typename C<protocolId>::ProtocolVersion
C<protocolId>::D::GetProtocolVersion()’ does not match any in class
‘C<protocolId>::D’
 typename C<protocolId>::ProtocolVersion C<protocolId>::D::GetProtocolVersion()
                                         ^
test.cpp:13:19: error: candidate is: C<protocolId>::ProtocolVersion
C<protocolId>::D::GetProtocolVersion()
   ProtocolVersion GetProtocolVersion();


The code used to work for ages, is compilable with MSVC, clang and gcc on
various platforms, was compilable with 4.8.1 but broke with 4.8.2. The issue is
with string template parameter; replacing 
typedef const char *const&  ProtocolIdType;
by 
typedef int ProtocolIdType;
makes the error go away.


> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.2-15'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Debian 4.8.2-15)
>From gcc-bugs-return-444208-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Feb 19 13:54:21 2014
Return-Path: <gcc-bugs-return-444208-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 18055 invoked by alias); 19 Feb 2014 13:54:21 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 18010 invoked by uid 48); 19 Feb 2014 13:54:17 -0000
From: "slayoo at staszic dot waw.pl" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/60267] ICE in c_pp_lookup_pragma, at c-family/c-pragma.c:1232; ICE in tsubst_copy, at cp/pt.c:12887
Date: Wed, 19 Feb 2014 13:54:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: slayoo at staszic dot waw.pl
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-60267-4-K3FEp2WIVq@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-60267-4@http.gcc.gnu.org/bugzilla/>
References: <bug-60267-4@http.gcc.gnu.org/bugzilla/>
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: 2014-02/txt/msg01965.txt.bz2
Content-length: 271

http://gcc.gnu.org/bugzilla/show_bug.cgi?id`267

--- Comment #8 from Sylwester Arabas <slayoo at staszic dot waw.pl> ---
BTW, I have initially reported it as a comment to
http://gcc.gnu.org/bugzilla/show_bug.cgi?id`198 (the same file/line in ICE
error message).

S.


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

* [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3
  2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
@ 2014-02-19 14:03 ` rguenth at gcc dot gnu.org
  2014-02-19 15:34 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-02-19 14:03 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.8.2
           Keywords|                            |rejects-valid
   Last reconfirmed|                            |2014-02-19
     Ever confirmed|0                           |1
            Summary|String as template          |[4.8/4.9 Regression] String
                   |parameter - regression in   |as template parameter -
                   |4.8.2                       |regression in 4.8.3
   Target Milestone|---                         |4.8.3
      Known to fail|                            |4.8.3, 4.9.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Actually 4.8.2 works but the top of the branch doesn't.


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

* [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3
  2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
  2014-02-19 14:03 ` [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3 rguenth at gcc dot gnu.org
@ 2014-02-19 15:34 ` jakub at gcc dot gnu.org
  2014-02-21  4:10 ` jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-02-19 15:34 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r207167.


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

* [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3
  2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
  2014-02-19 14:03 ` [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3 rguenth at gcc dot gnu.org
  2014-02-19 15:34 ` jakub at gcc dot gnu.org
@ 2014-02-21  4:10 ` jason at gcc dot gnu.org
  2014-02-21  4:43 ` jason at gcc dot gnu.org
  2014-02-21  5:05 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2014-02-21  4:10 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org


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

* [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3
  2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
                   ` (2 preceding siblings ...)
  2014-02-21  4:10 ` jason at gcc dot gnu.org
@ 2014-02-21  4:43 ` jason at gcc dot gnu.org
  2014-02-21  5:05 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2014-02-21  4:43 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Fri Feb 21 04:42:59 2014
New Revision: 207978

URL: http://gcc.gnu.org/viewcvs?rev=207978&root=gcc&view=rev
Log:
    PR c++/60274
    Revert:
    PR c++/58606
    * pt.c (template_parm_to_arg): Call convert_from_reference.
    (tsubst_template_arg): Don't strip reference refs.

Added:
    branches/gcc-4_8-branch/gcc/testsuite/g++.dg/template/ref7.C
Removed:
    branches/gcc-4_8-branch/gcc/testsuite/g++.dg/cpp0x/variadic146.C
Modified:
    branches/gcc-4_8-branch/gcc/cp/ChangeLog
    branches/gcc-4_8-branch/gcc/cp/pt.c


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

* [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3
  2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
                   ` (3 preceding siblings ...)
  2014-02-21  4:43 ` jason at gcc dot gnu.org
@ 2014-02-21  5:05 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2014-02-21  5:05 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
Dup.

*** This bug has been marked as a duplicate of bug 60167 ***


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

end of thread, other threads:[~2014-02-21  5:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-19 13:53 [Bug c++/60274] New: String as template parameter - regression in 4.8.2 ondrej.kolacek1 at centrum dot cz
2014-02-19 14:03 ` [Bug c++/60274] [4.8/4.9 Regression] String as template parameter - regression in 4.8.3 rguenth at gcc dot gnu.org
2014-02-19 15:34 ` jakub at gcc dot gnu.org
2014-02-21  4:10 ` jason at gcc dot gnu.org
2014-02-21  4:43 ` jason at gcc dot gnu.org
2014-02-21  5:05 ` 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).