comparison gcc/testsuite/g++.target/s390/pr94704-4.C @ 19:2b5abeee2509 default tip

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
comparison
equal deleted inserted replaced
18:1830386684a0 19:2b5abeee2509
1 // PR target/94704
2 // { dg-do compile }
3 // { dg-options "-O2 -std=c++17" }
4 // Test that for no 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-not {(?n)^\s+ld\s+%f0,} } }
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-bogus "parameter passing for argument of type" }
29 T (D, d)
30 T (E, e)
31 T (H, h)
32 T (I, i)
33 T (L, l)
34 T (M, m)