http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56065
Bug #: 56065 Summary: Constant expression incorrectly recognized not as such Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: lucdan...@free.fr $ gcc-snapshot --version gcc-snapshot (Debian 20130113-1) 4.8.0 20130113 (experimental) [trunk revision 195136] $ cat main.cpp #include <type_traits> template<typename T> constexpr T id(T t) { return t; } template<int I> using Alias = std::integral_constant<int, I>; template<int I> std::integral_constant<int, id(I)> f() { return {}; } template<int I> Alias<id(I)> g() { return {}; } int main() { // Fine constexpr auto I = id(5); (void)I; // Also fine f<0>(); // error: integral expression 'id<int>(0)' is not constant g<0>(); }