(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
abi/
nsdmi-aggr1a.C
// PR c++/103681
// { dg-do compile { target c++11 } }
// { dg-additional-options "-fabi-version=0 -Wabi=16" }

struct A {
  long l;
  char c = -1;
};
struct B : public A {
  char d;
  // { dg-warning "offset" "" { target c++14 } .-1 }
};

#define SA(X) static_assert(X,#X)
SA(sizeof (B) == sizeof (A));

struct X { char d; };
struct B2 : A, X { };
// { dg-warning "offset" "" { target c++14 } .-1 }
SA(sizeof (B2) == sizeof (A));

#if __cplusplus > 201800L

struct C {
  [[no_unique_address]] A a;
  char d;
  // { dg-warning "offset" "" { target c++20 } .-1 }
};
SA(sizeof (C) == sizeof (A));

struct C2 : A, X { };
// { dg-warning "offset" "" { target c++20 } .-1 }
SA(sizeof (B2) == sizeof (A));

#endif /* C++20 */