27 lines · cpp
1// RUN: %clang_cc1 -emit-llvm -triple=x86_64-windows-msvc %s -o - | FileCheck %s2 3struct Foo { int x, y; };4 5struct S {6 // PR361257 static constexpr char sdm_char_array[] = "asdf";8 9 // PR4328010 static constexpr const char *sdm_char_ptr = "asdf";11 12 static constexpr Foo sdm_udt{1, 2};13};14 15void useptr(const void *p);16void usethem() {17 useptr(&S::sdm_char_array);18 useptr(&S::sdm_char_ptr);19 useptr(&S::sdm_udt);20}21 22// CHECK-DAG: @"?sdm_char_array@S@@2QBDB" = linkonce_odr dso_local constant [5 x i8] c"asdf\00", comdat, align 123 24// CHECK-DAG: @"?sdm_char_ptr@S@@2QEBDEB" = linkonce_odr dso_local constant ptr @"??_C@_04JIHMPGLA@asdf?$AA@", comdat, align 825 26// CHECK-DAG: @"?sdm_udt@S@@2UFoo@@B" = linkonce_odr dso_local constant %struct.Foo { i32 1, i32 2 }, comdat, align 427