1 // RUN: %clang_cc1 -triple i386-unknown-unknown -std=c++11 -S -emit-llvm -o - %s -Wno-address-of-temporary | FileCheck %s
3 // CHECK: @[[THREE_NULL_MEMPTRS:.*]] = private constant [3 x i32] [i32 -1, i32 -1, i32 -1]
5 struct A
{ int a
[1]; };
9 // CHECK-LABEL: define{{.*}} i32 @_Z1fv
11 // (It's okay if the output changes here, as long as we don't crash.)
15 namespace ValueInitArrayOfMemPtr
{
36 // CHECK-LABEL: define{{.*}} void @_ZN22ValueInitArrayOfMemPtr1fEi
39 // CHECK: store i32 -1,
42 // CHECK: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %{{.*}}, ptr align 4 @[[THREE_NULL_MEMPTRS]], i32 12, i1 false)
45 // Test dynamic initialization.
46 // CHECK-LABEL: define{{.*}} void @_ZN22ValueInitArrayOfMemPtr1gEMNS_1SEi
48 // CHECK: store i32 -1,
53 namespace array_dtor
{
54 struct S
{ S(); ~S(); };
58 // CHECK-LABEL: define{{.*}} void @_ZN10array_dtor1gEv(
60 // CHECK: %[[ARRAY:.*]] = alloca [3 x
64 // CHECK: call void @_ZN10array_dtor1SC1Ev(
67 // CHECK: call void @_ZN10array_dtor1fERA3_KNS_1SE(
71 // CHECK: call void @_ZN10array_dtor1SD1Ev(
77 // CHECK-LABEL: define{{.*}} void @_ZN10array_dtor1hEv(
79 // CHECK: %[[ARRAY:.*]] = alloca [3 x
82 // CHECK: call void @_ZN10array_dtor1SC1Ev(
86 // CHECK: call void @_ZN10array_dtor1fERA3_KNS_1SE(
90 // CHECK: call void @_ZN10array_dtor1SD1Ev(
95 // CHECK-LABEL: define{{.*}} void @_ZN10array_dtor1iEv(
97 // CHECK: %[[ARRAY:.*]] = alloca [3 x
100 // CHECK: call void @_ZN10array_dtor1SC1Ev(
103 // CHECK: call void @_ZN10array_dtor1fEPA3_NS_1SE(
106 // CHECK: call void @_ZN10array_dtor1SD1Ev(