@@ -7,7 +7,6 @@ private import InstructionTag
77private import TranslatedElement
88private import TranslatedExpr
99private import TranslatedFunction
10- private import semmle.code.cpp.models.implementations.Allocation
1110
1211/**
1312 * The IR translation of a call to a function. The call may be from an actual
@@ -346,7 +345,7 @@ class TranslatedStructorCall extends TranslatedFunctionCall {
346345 override predicate hasQualifier ( ) { any ( ) }
347346}
348347
349- abstract class TranslatedAllocationSideEffects extends TranslatedSideEffects ,
348+ class TranslatedAllocationSideEffects extends TranslatedSideEffects ,
350349 TTranslatedAllocationSideEffects {
351350 AllocationExpr expr ;
352351
@@ -377,32 +376,12 @@ abstract class TranslatedAllocationSideEffects extends TranslatedSideEffects,
377376 operandTag = addressOperand ( ) and
378377 result = getPrimaryInstructionForSideEffect ( OnlyInstructionTag ( ) )
379378 }
380- }
381-
382- class TranslatedCallAllocationSideEffects extends TranslatedAllocationSideEffects {
383- override CallAllocationExpr expr ;
384-
385- override Instruction getPrimaryInstructionForSideEffect ( InstructionTag tag ) {
386- tag = OnlyInstructionTag ( ) and
387- result = getTranslatedExpr ( expr ) .getInstruction ( CallTag ( ) )
388- }
389- }
390-
391- class TranslatedNewAllocationSideEffects extends TranslatedAllocationSideEffects {
392- override NewAllocationExpr expr ;
393-
394- override Instruction getPrimaryInstructionForSideEffect ( InstructionTag tag ) {
395- tag = OnlyInstructionTag ( ) and
396- result = getTranslatedAllocatorCall ( expr ) .getInstruction ( CallTag ( ) )
397- }
398- }
399-
400- class TranslatedNewArrayAllocationSideEffects extends TranslatedAllocationSideEffects {
401- override NewArrayAllocationExpr expr ;
402379
403380 override Instruction getPrimaryInstructionForSideEffect ( InstructionTag tag ) {
404381 tag = OnlyInstructionTag ( ) and
405- result = getTranslatedAllocatorCall ( expr ) .getInstruction ( CallTag ( ) )
382+ if expr instanceof NewOrNewArrayExpr
383+ then result = getTranslatedAllocatorCall ( expr ) .getInstruction ( CallTag ( ) )
384+ else result = getTranslatedExpr ( expr ) .getInstruction ( CallTag ( ) )
406385 }
407386}
408387
0 commit comments