This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/57101] New: [4.8/4.9 Regression] -fcompare-debug failure with <type error>
- From: "zsojka at seznam dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 28 Apr 2013 09:13:54 +0000
- Subject: [Bug c++/57101] New: [4.8/4.9 Regression] -fcompare-debug failure with <type error>
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57101
Bug #: 57101
Summary: [4.8/4.9 Regression] -fcompare-debug failure with
<type error>
Classification: Unclassified
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: zsojka@seznam.cz
Created attachment 29961
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29961
autoreduced testcase
Compiler output:
$ gcc -std=c++0x -fcompare-debug testcase.C
gcc: error: testcase.C: -fcompare-debug failure (length)
$ diff testcase.*gkd
378c378
< Declarations used by typename
{anonymous}::enable_if<{anonymous}::is_lvalue_reference<
<template-parameter-1-1> >::value, _Tp>::type {anonymous}::forward(typename
{anonymous}::identity<_Tp>::type) [with _Tp = int; typename
{anonymous}::enable_if<{anonymous}::is_lvalue_reference<
<template-parameter-1-1> >::value, _Tp>::type = int; typename
{anonymous}::identity<_Tp>::type = int], sorted by DECL_UID:
---
> Declarations used by typename {anonymous}::enable_if<{anonymous}::is_lvalue_reference< <template-parameter-1-1> >::value, _Tp>::type {anonymous}::forward(typename {anonymous}::identity<_Tp>::type) [with _Tp = int; typename {anonymous}::enable_if<{anonymous}::is_lvalue_reference< <template-parameter-1-1> >::value, _Tp>::type = <type error>; typename {anonymous}::identity<_Tp>::type = int], sorted by DECL_UID:
381c381
< ;; Function typename {anonymous}::enable_if<{anonymous}::is_lvalue_reference<
<template-parameter-1-1> >::value, _Tp>::type {anonymous}::forward(typename
{anonymous}::identity<_Tp>::type) [with _Tp = int; typename
{anonymous}::enable_if<{anonymous}::is_lvalue_reference<
<template-parameter-1-1> >::value, _Tp>::type = int; typename
{anonymous}::identity<_Tp>::type = int]
(_ZN12_GLOBAL__N_17forwardIiEENS_9enable_ifIXsrNS_19is_lvalue_referenceIT_EE5valueES3_E4typeENS_8identityIS3_E4typeE,
funcdef_no=11, cgraph_uid=7)
---
> ;; Function typename {anonymous}::enable_if<{anonymous}::is_lvalue_reference< <template-parameter-1-1> >::value, _Tp>::type {anonymous}::forward(typename {anonymous}::identity<_Tp>::type) [with _Tp = int; typename {anonymous}::enable_if<{anonymous}::is_lvalue_reference< <template-parameter-1-1> >::value, _Tp>::type = <type error>; typename {anonymous}::identity<_Tp>::type = int] (_ZN12_GLOBAL__N_17forwardIiEENS_9enable_ifIXsrNS_19is_lvalue_referenceIT_EE5valueES3_E4typeENS_8identityIS3_E4typeE, funcdef_no=11, cgraph_uid=7)
The difference is 'type = int' vs. 'type = <type error>'.
Tested revisions:
r198362 - fail
4.8 r198018 - fail
4.7 r198018 - OK