[Bug c++/13997] New: [3.3?/3.4/3.5 Regression]

giovannibajo at libero dot it gcc-bugzilla@gcc.gnu.org
Tue Feb 3 12:12:00 GMT 2004


Another regression from Boost, this time is the Type Traits library. Minimized 
as follows (with the help of John Maddock):

--------------------------------------------
template <typename T>
struct is_array {};

template <typename T, unsigned int N>
struct is_array<T[N]> {};

template <typename T, unsigned int N>
struct is_array<const T[N]> {};

template struct is_array<int const[2]>;
--------------------------------------------
$ g++-3.4 -c is_array.cc
is_array.cc:10: error: size of array is not an integral constant-expression
is_array.cc:10: error: size of array is not an integral constant-expression


The problem seems that, at unification time, the domain of the array type is a 
(NON_LVALUE_EXPR (NOP_EXPR (INTEGER_CST))), and the substitution code doesn't 
seem to handle it. No clue about why.

-- 
           Summary: [3.3?/3.4/3.5 Regression]
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: giovannibajo at libero dot it
                CC: gcc-bugs at gcc dot gnu dot org,john at johnmaddock dot
                    co dot uk


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



More information about the Gcc-bugs mailing list