diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2013-02-13 12:14:25 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2013-02-13 12:14:25 +0000 |
commit | 474534556c96e81330a7432a80615821ee0afe27 (patch) | |
tree | 27504ee4a03926bdacbed57120969cf65a2ee6cb | |
parent | 62a48fbb891267873a71e1147d39200363a49276 (diff) |
Fix the microsoft-abi-structors test expectations to match both Release and Release+Asserts builds
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175053 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/CodeGenCXX/microsoft-abi-structors.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/test/CodeGenCXX/microsoft-abi-structors.cpp b/test/CodeGenCXX/microsoft-abi-structors.cpp index 16763d5317..1ae3ed4e1c 100644 --- a/test/CodeGenCXX/microsoft-abi-structors.cpp +++ b/test/CodeGenCXX/microsoft-abi-structors.cpp @@ -30,16 +30,22 @@ struct B { virtual ~B() { // Complete destructor first: // DTORS: define {{.*}} x86_thiscallcc void @"\01??1B@@UAE@XZ"(%struct.B* %this) -// + // Then, the scalar deleting destructor (used in the vtable): // DTORS: define {{.*}} x86_thiscallcc void @"\01??_GB@@UAEPAXI@Z"(%struct.B* %this, i1 zeroext %should_call_delete) -// DTORS: %0 = icmp eq i8 %should_call_delete{{.*}}, 0 -// DTORS-NEXT: br i1 %0, label %dtor.continue, label %dtor.call_delete -// DTORS: dtor.call_delete: -// DTORS-NEXT: %1 = bitcast %struct.B* %this1 to i8* -// DTORS-NEXT: call void @"\01??3@YAXPAX@Z"(i8* %1) nounwind -// DTORS-NEXT: br label %dtor.continue -// DTORS: dtor.continue: +// DTORS: %[[FROMBOOL:[0-9a-z]+]] = zext i1 %should_call_delete to i8 +// DTORS-NEXT: store i8 %[[FROMBOOL]], i8* %[[SHOULD_DELETE_VAR:[0-9a-z]+]], align 1 +// DTORS: %[[SHOULD_DELETE_VALUE:[0-9a-z]+]] = load i8* %[[SHOULD_DELETE_VAR]] +// DTORS: call x86_thiscallcc void @"\01??1B@@UAE@XZ"(%struct.B* %[[THIS:[0-9a-z]+]]) +// DTORS-NEXT: %[[CONDITION:[0-9]+]] = icmp eq i8 %[[SHOULD_DELETE_VALUE]], 0 +// DTORS-NEXT: br i1 %[[CONDITION]], label %[[CONTINUE_LABEL:[0-9a-z._]+]], label %[[CALL_DELETE_LABEL:[0-9a-z._]+]] +// +// DTORS: [[CALL_DELETE_LABEL]] +// DTORS-NEXT: %[[THIS_AS_VOID:[0-9a-z]+]] = bitcast %struct.B* %[[THIS]] to i8* +// DTORS-NEXT: call void @"\01??3@YAXPAX@Z"(i8* %[[THIS_AS_VOID]]) nounwind +// DTORS-NEXT: br label %[[CONTINUE_LABEL]] +// +// DTORS: [[CONTINUE_LABEL]] // DTORS-NEXT: ret void } virtual void foo(); |