Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/cpp2a/desig4.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/cpp2a/desig4.C Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,19 @@ +// { dg-do compile } +// { dg-options "" } + +struct A { int x, y; }; +struct B { int y, x; }; +void f(A a, int); // #1 +void f(B b, ...); // #2 +void g(A a); // #3 { dg-message "candidate:" } +void g(B b); // #4 { dg-message "candidate:" } +void h() { + f({.x = 1, .y = 2}, 0); // OK; calls #1 + // { dg-warning "extended initializer lists only available with" "" { target c++98_only } .-1 } + f({.y = 2, .x = 1}, 0); // error: selects #1 + // { dg-error "designator order for field 'A::x' does not match declaration order in 'A'" "" { target *-*-* } .-1 } + // { dg-warning "extended initializer lists only available with" "" { target c++98_only } .-2 } + g({.x = 1, .y = 2}); // error: ambiguous between #3 and #4 + // { dg-error "is ambiguous" "" { target *-*-* } .-1 } + // { dg-warning "extended initializer lists only available with" "" { target c++98_only } .-2 } +}