1ef4a2a2bSDouglas Gregor // RUN: %clang_cc1 -fsyntax-only -verify %s 2c6e68daaSAndy Gibbs // expected-no-diagnostics 3ef4a2a2bSDouglas Gregor 4ef4a2a2bSDouglas Gregor struct mystruct { 5ef4a2a2bSDouglas Gregor int member; 6ef4a2a2bSDouglas Gregor }; 7ef4a2a2bSDouglas Gregor 8ef4a2a2bSDouglas Gregor template <int i> foo()9ef4a2a2bSDouglas Gregorint foo() { 10ef4a2a2bSDouglas Gregor mystruct s[1]; 11ef4a2a2bSDouglas Gregor return s->member; 12ef4a2a2bSDouglas Gregor } 13ef4a2a2bSDouglas Gregor main()14ef4a2a2bSDouglas Gregorint main() { 15ef4a2a2bSDouglas Gregor foo<1>(); 16ef4a2a2bSDouglas Gregor } 17ef4a2a2bSDouglas Gregor 18ef4a2a2bSDouglas Gregor // PR7405 19ef4a2a2bSDouglas Gregor struct hb_sanitize_context_t { 20ef4a2a2bSDouglas Gregor int start; 21ef4a2a2bSDouglas Gregor }; sanitize()22ef4a2a2bSDouglas Gregortemplate <typename Type> static bool sanitize() { 23ef4a2a2bSDouglas Gregor hb_sanitize_context_t c[1]; 24ef4a2a2bSDouglas Gregor return !c->start; 25ef4a2a2bSDouglas Gregor } 26ef4a2a2bSDouglas Gregor bool closure = sanitize<int>(); 27*148974d6SAnna Zaks 28*148974d6SAnna Zaks // PR16206 29*148974d6SAnna Zaks typedef struct { 30*148974d6SAnna Zaks char x[4]; 31*148974d6SAnna Zaks } chars; 32*148974d6SAnna Zaks 33*148974d6SAnna Zaks chars getChars(); 34*148974d6SAnna Zaks void use(char *); 35*148974d6SAnna Zaks test()36*148974d6SAnna Zaksvoid test() { 37*148974d6SAnna Zaks use(getChars().x); 38*148974d6SAnna Zaks } 39