// { dg-do run { target c++17 } } // { dg-options "-Wno-deprecated" } // { dg-require-weak "" } // { dg-additional-sources "inline-var1a.C" } #include "inline-var1.h" static inline int var19 = bar (0); static int inline var20 = bar (1); extern inline int var23; inline int var21 = foo (6); inline int var22 = foo (7); extern inline int var23, var22; inline int var23 = foo (8); static int v, w = 64 + 2; int foo (int x) { if (x != v++) __builtin_abort (); return 36 + x; } int bar (int x) { if (v < 6) __builtin_abort (); if ((x >> 4) != (w >> 4)) { if ((x & 15) != 0 || (w & 15) != 2) __builtin_abort (); w = x + 1; } else if (x != w++) __builtin_abort (); return 46 + x; } int &ref1 = var1; int &ref2 = N::var2; const int &ref3 = S::var3; int &ref4 = S::var4; const int &ref5 = S::var5; const int &ref6 = N::var6; int &ref7 = var7; double &ref8 = N::var8; double &ref9 = S::var9; const int &ref11 = S::var11; int &ref12 = var12; int &ref13 = var13; int &ref14 = U::var14; T &ref15 = U::var15; T &ref16 = U::var16; int &ref17 = U::var17; const double &ref18 = U::var18; int &ref19 = var19; int &ref20 = var20; int &ref21 = var21; int &ref22 = var22; int &ref23 = var23; const int &ref24 = Y::var24; int &ref25 = Y::var25; int &ref26 = Y::var26; int &ref27 = var27; const int &ref28 = Y::var28; const char &ref24a = Y::var24; char &ref25a = Y::var25; int &ref26a = Y::var26; char &ref27a = var27; const char &ref28a = Y::var28; extern int &alt1; extern int &alt2; extern const int &alt3; extern int &alt4; extern const int &alt5; extern const int &alt6; extern int &alt7; extern double &alt8; extern double &alt9; extern const int &alt11; extern int &alt12; extern int &alt13; extern int &alt14; extern T &alt15; extern T &alt16; extern int &alt17; extern const double &alt18; extern int &alt19; extern int &alt20; extern int &alt21; extern int &alt22; extern int &alt23; extern const int &alt24; extern int &alt25; extern int &alt26; extern int &alt27; extern const int &alt28; extern const char &alt24a; extern char &alt25a; extern int &alt26a; extern char &alt27a; extern const char &alt28a; int main () { if (v != 9) __builtin_abort (); if (var1 != 4 || N::var2 != 0 || S::var3 != 5 || S::var4 != 6 || S::var5 != 7 || N::var6 != 8 || var7 != 9 || N::var8 != 2.0 || S::var9 != 3.0 || sizeof (N::var10) != 1 || S::var11 != 11 || var12 != 36 || var13 != 37 || U::var14 != 38 || U::var15.t != 39 || U::var16.t != 40 || U::var17 != 41 || U::var18 != 4.0 || var19 != 46 || var20 != 47 || var21 != 42 || var22 != 43 || var23 != 44 || Y::var24 != 6 || Y::var25 != 7 || Y::var26 != 8 || var27 != 9 || Y::var28 != 10 || Y::var24 != 6 || Y::var25 != 7 || Y::var26 != 8 || var27 != 9 || Y::var28 != 10) __builtin_abort (); if (ref1 != 4 || ref2 != 0 || ref3 != 5 || ref4 != 6 || ref5 != 7 || ref6 != 8 || ref7 != 9 || alt7 != 9 || ref8 != 2.0 || alt8 != 2.0 || ref9 != 3.0 || ref11 != 11 || ref12 != 36 || ref13 != 37 || ref14 != 38 || ref15.t != 39 || ref16.t != 40 || ref17 != 41 || ref18 != 4.0 || ref19 != 46 || alt19 != 62 || ref20 != 47 || alt20 != 63 || ref21 != 42 || ref22 != 43 || ref23 != 44 || ref24 != 6 || ref25 != 7 || ref26 != 8 || ref27 != 9 || ref28 != 10 || ref24a != 6 || ref25a != 7 || ref26a != 8 || ref27a != 9 || ref28a != 10) __builtin_abort (); if (&ref1 != &alt1 || &ref2 != &alt2 || &ref3 != &alt3 || &ref4 != &alt4 || &ref5 != &alt5 || &ref6 != &alt6 || &ref7 == &alt7 || &ref8 == &alt8 || &ref9 != &alt9 || &ref11 != &alt11 || &ref12 != &alt12 || &ref13 != &alt13 || &ref14 != &alt14 || &ref15 != &alt15 || &ref16 != &alt16 || &ref17 != &alt17 || &ref18 != &alt18 || &ref19 == &alt19 || &ref20 == &alt20 || &ref21 != &alt21 || &ref22 != &alt22 || &ref23 != &alt23 || &ref24 != &alt24 || &ref25 != &alt25 || &ref26 != &alt26 || &ref27 != &alt27 || &ref28 != &alt28 || &ref24a != &alt24a || &ref25a != &alt25a || &ref26a != &alt26a || &ref27a != &alt27a || &ref28a != &alt28a) __builtin_abort (); }