@@ -7,7 +7,6 @@ private import InstructionTag
7
7
private import TranslatedElement
8
8
private import TranslatedExpr
9
9
private import TranslatedFunction
10
- private import semmle.code.cpp.models.implementations.Allocation
11
10
12
11
/**
13
12
* The IR translation of a call to a function. The call may be from an actual
@@ -346,7 +345,7 @@ class TranslatedStructorCall extends TranslatedFunctionCall {
346
345
override predicate hasQualifier ( ) { any ( ) }
347
346
}
348
347
349
- abstract class TranslatedAllocationSideEffects extends TranslatedSideEffects ,
348
+ class TranslatedAllocationSideEffects extends TranslatedSideEffects ,
350
349
TTranslatedAllocationSideEffects {
351
350
AllocationExpr expr ;
352
351
@@ -377,32 +376,12 @@ abstract class TranslatedAllocationSideEffects extends TranslatedSideEffects,
377
376
operandTag = addressOperand ( ) and
378
377
result = getPrimaryInstructionForSideEffect ( OnlyInstructionTag ( ) )
379
378
}
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 ;
402
379
403
380
override Instruction getPrimaryInstructionForSideEffect ( InstructionTag tag ) {
404
381
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 ( ) )
406
385
}
407
386
}
408
387
0 commit comments