|  | // RUN: %clang_cc1 -fsyntax-only -verify %s | 
|  | // expected-no-diagnostics | 
|  |  | 
|  | namespace PR6382 { | 
|  | int foo() | 
|  | { | 
|  | goto error; | 
|  | { | 
|  | struct BitPacker { | 
|  | BitPacker() {} | 
|  | }; | 
|  | BitPacker packer; | 
|  | } | 
|  |  | 
|  | error: | 
|  | return -1; | 
|  | } | 
|  | } | 
|  |  | 
|  | namespace PR6383 { | 
|  | void test (bool gross) | 
|  | { | 
|  | struct compare_and_set | 
|  | { | 
|  | void operator() (const bool inner, const bool gross = false) | 
|  | { | 
|  | // the code | 
|  | } | 
|  | } compare_and_set2; | 
|  |  | 
|  | compare_and_set2 (false, gross); | 
|  | } | 
|  | } | 
|  |  | 
|  | namespace Templates { | 
|  | template<int Value> | 
|  | void f() { | 
|  | struct Inner { | 
|  | static int getValue() { return Value; } | 
|  | }; | 
|  | } | 
|  | } | 
|  |  | 
|  | namespace PR25627_dont_odr_use_local_consts { | 
|  | template<int> struct X { X(); X(int); }; | 
|  |  | 
|  | void foo() { | 
|  | const int N = 10; | 
|  |  | 
|  | struct Local { | 
|  | void f(X<N> = X<N>()) {} // OK | 
|  | }; | 
|  | } | 
|  | } |