Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp2a/nontype-class37.C @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
line wrap: on
line source
/* PR c++/94510 - nullptr_t implicitly cast to zero twice in std::array { dg-do compile { target c++20 } } { dg-options "-Wall" } */ struct A { char a[4]; }; template <A> struct B { }; constexpr const char c0{ }; constexpr const char c1{ 1 }; typedef B<A{ }> BA; typedef B<A{ { } }> BA; typedef B<A{ { 0 } }> BA; typedef B<A{ { c0 } }> BA; typedef B<A{ { 0, 0 } }> BA; typedef B<A{ { 0, 0, 0 } }> BA; typedef B<A{ { 0, 0, 0, 0 } }> BA; typedef B<A{ { c0, c0, c0 } }> BA; typedef B<A{ { c0, c0, c0, c0 } }> BA; typedef B<A{ "" }> BA; typedef B<A{ "\0" }> BA; typedef B<A{ "\0\0" }> BA; typedef B<A{ "\0\0\0" }> BA; typedef B<A{ 1 }> BA1; typedef B<A{ { 1 } }> BA1; typedef B<A{ { 1, 0 } }> BA1; typedef B<A{ { 1, 0, 0 } }> BA1; typedef B<A{ { 1, 0, 0, 0 } }> BA1; typedef B<A{ { c1 } }> BA1; typedef B<A{ { c1, c0 } }> BA1; typedef B<A{ { c1, c0, c0 } }> BA1; typedef B<A{ { c1, c0, c0, c0 } }> BA1; typedef B<A{ "\1" }> BA1; typedef B<A{ "\1\0" }> BA1; typedef B<A{ "\1\0\0" }> BA1; typedef B<A{ 0, 1 }> BA01; typedef B<A{ { 0, 1 } }> BA01; typedef B<A{ { 0, 1, 0 } }> BA01; typedef B<A{ { 0, 1, 0, 0 } }> BA01; typedef B<A{ { c0, c1 } }> BA01; typedef B<A{ { c0, c1, c0 } }> BA01; typedef B<A{ { c0, c1, c0, c0 } }> BA01; typedef B<A{ "\0\1" }> BA01; typedef B<A{ "\0\1\0" }> BA01; struct C { int a[4]; }; template <C> struct D { }; constexpr const int i0{ }; typedef D<C{ }> DC; typedef D<C{ { } }> DC; typedef D<C{ { 0 } }> DC; typedef D<C{ { 0, 0 } }> DC; typedef D<C{ { 0, 0, 0 } }> DC; typedef D<C{ { 0, 0, 0, 0 } }> DC; typedef D<C{ { i0 } }> DC; typedef D<C{ { i0, i0 } }> DC; typedef D<C{ { i0, i0, i0 } }> DC; typedef D<C{ { i0, i0, i0, i0 } }> DC; constexpr const int i1{ 1 }; typedef D<C{ 1 }> DC1; typedef D<C{ { 1 } }> DC1; typedef D<C{ { 1, 0 } }> DC1; typedef D<C{ { 1, 0, 0 } }> DC1; typedef D<C{ { 1, 0, 0, 0 } }> DC1; typedef D<C{ { i1, i0, i0, i0 } }> DC1; typedef D<C{ 0, 1 }> DC01; typedef D<C{ { 0, 1 } }> DC01; typedef D<C{ { 0, 1, 0 } }> DC01; typedef D<C{ { 0, 1, 0, 0 } }> DC01; typedef D<C{ { 0, i1, 0, 0 } }> DC01; typedef D<C{ { i0, i1, i0, i0 } }> DC01; // { dg-bogus "conflicting declaration" "pr94567" { xfail *-*-* } }