Skip to content

Commit 275333a

Browse files
committed
Add comment explaining MSVC behavior that we follow
1 parent ed36a17 commit 275333a

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

clang/lib/CodeGen/CGExprCXX.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,13 @@ void CodeGenFunction::EmitNewArrayInitializer(
12061206
EmitCXXAggrConstructorCall(Ctor, NumElements, CurPtr, CCE,
12071207
/*NewPointerIsChecked*/true,
12081208
CCE->requiresZeroInitialization());
1209+
1210+
// For MSVC vector deleting destructors support we record that for the class
1211+
// new[] was called. We try to optimize the code size and only emit vector
1212+
// deleting destructors when they are required. Vector deleting destructors
1213+
// are required for delete[] call but MSVC triggers emission of them
1214+
// whenever new[] is called for an object of the class and we do the same
1215+
// for compatibility.
12091216
if (CGM.getContext().getTargetInfo().emitVectorDeletingDtors(
12101217
CGM.getContext().getLangOpts()))
12111218
CGM.requireVectorDestructorDefinition(Ctor->getParent());

0 commit comments

Comments
 (0)