Skip to content

Commit fa7dc32

Browse files
committed
C++: Remove dependency on implementation of models in TranslatedCall
1 parent f06ae6e commit fa7dc32

File tree

1 file changed

+4
-25
lines changed

1 file changed

+4
-25
lines changed

cpp/ql/src/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ private import InstructionTag
77
private import TranslatedElement
88
private import TranslatedExpr
99
private 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

Comments
 (0)