1 // PR c++/33842 2 // { dg-do compile } 3 4 template<typename T> struct A 5 { 6 A<__builtin_offsetof(T, x)>(); // { dg-error "type/value mismatch|offsetof\\(T, x\\)" } 7 }; 8 9 template<typename T> struct B 10 { 11 B<__builtin_offsetof(T, x.y)>(); // { dg-error "type/value mismatch|offsetof\\(T, x.y\\)" } 12 }; 13 14 template<typename T> struct C 15 { 16 C<__builtin_offsetof(T, x[6])>(); // { dg-error "type/value mismatch|offsetof\\(T, x\\\[6\\\]\\)" } 17 }; 18 19 template<typename T> struct D 20 { 21 D<__builtin_offsetof(T, x.y[6].z)>(); // { dg-error "type/value mismatch|offsetof\\(T, x.y\\\[6\\\].z\\)" } 22 }; 23 24 struct E { int x; }; 25 26 template<typename T> struct F 27 { 28 F<__builtin_offsetof(E, x)>(); // { dg-error "type/value mismatch|offsetof\\(E, x\\)" } 29 }; 30