1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // expected-no-diagnostics 3 4 namespace PR6382 { foo()5 int foo() 6 { 7 goto error; 8 { 9 struct BitPacker { 10 BitPacker() {} 11 }; 12 BitPacker packer; 13 } 14 15 error: 16 return -1; 17 } 18 } 19 20 namespace PR6383 { test(bool gross)21 void test (bool gross) 22 { 23 struct compare_and_set 24 { 25 void operator() (const bool inner, const bool gross = false) 26 { 27 // the code 28 } 29 } compare_and_set2; 30 31 compare_and_set2 (false, gross); 32 } 33 } 34 35 namespace Templates { 36 template<int Value> f()37 void f() { 38 struct Inner { 39 static int getValue() { return Value; } 40 }; 41 } 42 } 43 44 namespace PR25627_dont_odr_use_local_consts { 45 template<int> struct X { X(); X(int); }; 46 foo()47 void foo() { 48 const int N = 10; 49 50 struct Local { 51 void f(X<N> = X<N>()) {} // OK 52 }; 53 } 54 } 55