// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -std=c++1y -O1 -disable-llvm-optzns %s -o - | FileCheck %s -check-prefix=CHECKA -check-prefix=CHECK
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -std=c++1y -O1 -disable-llvm-optzns -fcxx-exceptions %s -o - | FileCheck %s -check-prefix=CHECKB -check-prefix=CHECK
// expected-no-diagnostics

// The variable template specialization x<Foo> generated in each file
// should be 'internal global' and not 'linkonce_odr global'.

template <typename T> int x = 42;

// CHECK-DAG: @_Z1xIZL3foovE3FooE = internal global

// CHECK-DAG: define internal dereferenceable(4) i32* @_ZL3foov(
static int &foo() {
   struct Foo { };
   
   // CHECK-DAG: ret i32* @_Z1xIZL3foovE3FooE
   return x<Foo>;
}


#if !__has_feature(cxx_exceptions) // File A
// CHECKA-DAG: define dereferenceable(4) i32* @_Z3barv(
int &bar() { 
	// CHECKA-DAG: call dereferenceable(4) i32* @_ZL3foov()
	return foo();
}

#else // File B

// CHECKB-DAG: declare dereferenceable(4) i32* @_Z3barv(
int &bar();

int main() {
	// CHECKB-DAG: call dereferenceable(4) i32* @_Z3barv()
	// CHECKB-DAG: call dereferenceable(4) i32* @_ZL3foov()
	&bar() == &foo() ? throw 0 : (void)0; // Should not throw exception at runtime.
}

#endif // end of Files A and B

