// RUN: %clang_cc1 -no-opaque-pointers %s -triple=i686-pc-win32 -fms-extensions -emit-llvm -o - | FileCheck %s
int ;
// CHECK: $"?x@selectany_init@@3HA" = comdat any
// CHECK: $"?x@?$A@H@explicit_template_instantiation@@2HB" = comdat any
// CHECK: $"?x@?$A@H@implicit_template_instantiation@@2HB" = comdat any
// ... and here's where we emitted user level ctors.
// CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }]
// CHECK: [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_pragma_init_seg.cpp, i8* null }]
// We have to mark everything used so we can survive globalopt, even through
// LTO. There's no way LLVM could really understand if data in the .asdf
// section is really used or dead.
//
// CHECK: @llvm.used = appending global [6 x i8*]
// CHECK: [i8* bitcast (void ()** @__cxx_init_fn_ptr to i8*),
// CHECK: i8* bitcast (void ()** @__cxx_init_fn_ptr.1 to i8*),
// CHECK: i8* bitcast (void ()** @__cxx_init_fn_ptr.2 to i8*),
// CHECK: i8* bitcast (void ()** @__cxx_init_fn_ptr.3 to i8*),
// CHECK: i8* bitcast (void ()** @__cxx_init_fn_ptr.4 to i8*),
// CHECK: i8* bitcast (void ()** @__cxx_init_fn_ptr.5 to i8*)], section "llvm.metadata"