Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.target/s390/pr94704-1.C @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 // PR target/94704 | |
2 // { dg-do compile } | |
3 // { dg-options "-O2 -std=c++14" } | |
4 // Test that for all the calls in this testcase the C++17 empty base | |
5 // artificial fields and [[no_unique_address]] empty class non-static | |
6 // data members are ignored in the decision whether passed arguments | |
7 // have a single floating point field. | |
8 // { dg-final { scan-assembler-times {(?n)^\s+ld\s+%f0,} 7 } } | |
9 | |
10 struct X { }; | |
11 struct Y { int : 0; }; | |
12 struct Z { int : 0; Y y; }; | |
13 struct U : public X { X q; }; | |
14 struct A { double a; }; | |
15 struct B : public X { double a; }; | |
16 struct C : public Y { double a; }; | |
17 struct D : public Z { double a; }; | |
18 struct E : public U { double a; }; | |
19 struct F { [[no_unique_address]] X x; double a; }; | |
20 struct G { [[no_unique_address]] Y y; double a; }; | |
21 struct H { [[no_unique_address]] Z z; double a; }; | |
22 struct I { [[no_unique_address]] U u; double a; }; | |
23 struct J { double a; [[no_unique_address]] X x; }; | |
24 struct K { double a; [[no_unique_address]] Y y; }; | |
25 struct L { double a; [[no_unique_address]] Z z; }; | |
26 struct M { double a; [[no_unique_address]] U u; }; | |
27 #define T(S, s) extern S s; extern void foo##s (S); int bar##s () { foo##s (s); return 0; } | |
28 // { dg-message "parameter passing for argument of type 'F' with '\\\[\\\[no_unique_address\\\]\\\]' members changed in GCC 10.1" "" { target *-*-* } .-1 } | |
29 // { dg-message "parameter passing for argument of type 'G' with '\\\[\\\[no_unique_address\\\]\\\]' members changed in GCC 10.1" "" { target *-*-* } .-2 } | |
30 // { dg-message "parameter passing for argument of type 'J' with '\\\[\\\[no_unique_address\\\]\\\]' members changed in GCC 10.1" "" { target *-*-* } .-3 } | |
31 // { dg-message "parameter passing for argument of type 'K' with '\\\[\\\[no_unique_address\\\]\\\]' members changed in GCC 10.1" "" { target *-*-* } .-4 } | |
32 T (A, a) | |
33 T (B, b) | |
34 T (C, c) | |
35 T (F, f) | |
36 T (G, g) | |
37 T (J, j) | |
38 T (K, k) |