HomePhabricator

[MS] Fix bug in r327732 with devirtualized complete destructor calls
AuditedrL327754

Description

[MS] Fix bug in r327732 with devirtualized complete destructor calls

Details

Auditors
zahiraam
Committed
rnkMar 16 2018, 3:20 PM
Parents
rL327753: Fix the Windows build after r327750
Branches
Unknown
Tags
Unknown

Event Timeline

I think this breaks CodeGenCXX/dllimport-base.cpp and devirtualize-ms-dtor.cpp?

zahiraam raised a concern with this commit.Mar 19 2018, 3:18 PM

This is the LLVM I get. The above test case is failing:

- CHECK-LABEL: define{{.*}} void @"?f@@YAXPEAUFoo@@@Z"(%struct.Foo* %p)
-
CHECK: call void @"??1Foo@@UEAA@XZ"
+ CHECK-LABEL: define dso_local void @"\01?f@@YAXPEAUFoo@@@Z"(%struct.Foo* %p)
+
CHECK: call void @"\01??1Foo@@UEAA@XZ"(%struct.Foo* %0)

This commit now has outstanding concerns.Mar 19 2018, 3:18 PM
rnk added a comment.Mar 19 2018, 4:22 PM

The new tests rely on rC327738 and rL327734, so they do not have the \01 mangling escape prefix.

zahiraam accepted this commit.Mar 20 2018, 11:50 AM
All concerns with this commit have now been addressed.Mar 20 2018, 11:50 AM