[Bug c++/57101] New: [4.8/4.9 Regression] -fcompare-debug failure with <type error>

zsojka at seznam dot cz gcc-bugzilla@gcc.gnu.org
Sun Apr 28 09:13:00 GMT 2013


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



More information about the Gcc-bugs mailing list