Skip to content

Commit 2770b2a

Browse files
author
Robert Marsh
committed
C++: respond to PR comments
1 parent 98d6f59 commit 2770b2a

File tree

7 files changed

+49
-63
lines changed

7 files changed

+49
-63
lines changed

cpp/ql/src/semmle/code/cpp/ir/implementation/Opcode.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,6 @@ module Opcode {
215215
class BufferWriteSideEffect extends WriteSideEffectOpcode, BufferAccessOpcode, TBufferWriteSideEffect { override final string toString() { result = "BufferWriteSideEffect" } }
216216
class BufferMayWriteSideEffect extends MayWriteSideEffectOpcode, BufferAccessOpcode, TBufferMayWriteSideEffect { override final string toString() { result = "BufferMayWriteSideEffect" } }
217217
class Chi extends Opcode, TChi { override final string toString() { result = "Chi" } }
218-
class InlineAsm extends Opcode, TInlineAsm { override final string toString() { result = "InlineAsm" } }
218+
class InlineAsm extends MayWriteSideEffectOpcode, TInlineAsm { override final string toString() { result = "InlineAsm" } }
219219
class Unreached extends Opcode, TUnreached { override final string toString() { result = "Unreached" } }
220220
}

cpp/ql/test/library-tests/ir/ir/PrintAST.expected

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7591,29 +7591,29 @@ ir.cpp:
75917591
# 1104| 3: d
75927592
# 1104| Type = unsigned int &
75937593
# 1105| body: { ... }
7594-
# 1107| 0: asm statement
7595-
# 1110| 0: (reference dereference)
7596-
# 1110| Type = unsigned int
7597-
# 1110| ValueCategory = lvalue
7598-
# 1110| expr: a
7599-
# 1110| Type = unsigned int &
7600-
# 1110| ValueCategory = prvalue(load)
7601-
# 1110| 1: (reference dereference)
7602-
# 1110| Type = unsigned int
7603-
# 1110| ValueCategory = lvalue
7604-
# 1110| expr: b
7605-
# 1110| Type = unsigned int &
7606-
# 1110| ValueCategory = prvalue(load)
7607-
# 1110| 2: (reference dereference)
7608-
# 1110| Type = unsigned int
7609-
# 1110| ValueCategory = lvalue
7610-
# 1110| expr: c
7611-
# 1110| Type = unsigned int &
7612-
# 1110| ValueCategory = prvalue(load)
7613-
# 1110| 3: (reference dereference)
7614-
# 1110| Type = unsigned int
7615-
# 1110| ValueCategory = lvalue
7616-
# 1110| expr: d
7617-
# 1110| Type = unsigned int &
7618-
# 1110| ValueCategory = prvalue(load)
7619-
# 1118| 1: return ...
7594+
# 1106| 0: asm statement
7595+
# 1109| 0: (reference dereference)
7596+
# 1109| Type = unsigned int
7597+
# 1109| ValueCategory = lvalue
7598+
# 1109| expr: a
7599+
# 1109| Type = unsigned int &
7600+
# 1109| ValueCategory = prvalue(load)
7601+
# 1109| 1: (reference dereference)
7602+
# 1109| Type = unsigned int
7603+
# 1109| ValueCategory = lvalue
7604+
# 1109| expr: b
7605+
# 1109| Type = unsigned int &
7606+
# 1109| ValueCategory = prvalue(load)
7607+
# 1109| 2: (reference dereference)
7608+
# 1109| Type = unsigned int
7609+
# 1109| ValueCategory = lvalue
7610+
# 1109| expr: c
7611+
# 1109| Type = unsigned int &
7612+
# 1109| ValueCategory = prvalue(load)
7613+
# 1109| 3: (reference dereference)
7614+
# 1109| Type = unsigned int
7615+
# 1109| ValueCategory = lvalue
7616+
# 1109| expr: d
7617+
# 1109| Type = unsigned int &
7618+
# 1109| ValueCategory = prvalue(load)
7619+
# 1111| 1: return ...

cpp/ql/test/library-tests/ir/ir/ir.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,18 +1103,11 @@ int AsmStmt(int x) {
11031103

11041104
static void AsmStmtWithOutputs(unsigned int& a, unsigned int& b, unsigned int& c, unsigned int& d)
11051105
{
1106-
#if defined(__GNUC__)
11071106
__asm__ __volatile__
11081107
(
11091108
"cpuid\n\t"
11101109
: "+a" (a), "+b" (b), "+c" (c), "+d" (d)
11111110
);
1112-
#else
1113-
a++;
1114-
b++;
1115-
c++;
1116-
d++;
1117-
#endif
11181111
}
11191112

11201113
// semmle-extractor-options: -std=c++17

cpp/ql/test/library-tests/ir/ir/raw_ir.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5006,7 +5006,7 @@ ir.cpp:
50065006
# 1099| mu0_2(unknown) = UnmodeledDefinition :
50075007
# 1099| r0_3(glval<int>) = VariableAddress[x] :
50085008
# 1099| mu0_4(int) = InitializeParameter[x] : &:r0_3
5009-
# 1100| mu0_5(unknown) = InlineAsm : ~mu0_2
5009+
# 1100| mu0_5(unknown) = ^InlineAsm : ~mu0_2
50105010
# 1101| r0_6(glval<int>) = VariableAddress[#return] :
50115011
# 1101| r0_7(glval<int>) = VariableAddress[x] :
50125012
# 1101| r0_8(int) = Load : &:r0_7, ~mu0_2
@@ -5029,12 +5029,12 @@ ir.cpp:
50295029
# 1104| mu0_8(unsigned int &) = InitializeParameter[c] : &:r0_7
50305030
# 1104| r0_9(glval<unsigned int &>) = VariableAddress[d] :
50315031
# 1104| mu0_10(unsigned int &) = InitializeParameter[d] : &:r0_9
5032-
# 1107| r0_11(glval<unsigned int &>) = VariableAddress[a] :
5033-
# 1107| r0_12(glval<unsigned int &>) = VariableAddress[b] :
5034-
# 1107| r0_13(glval<unsigned int &>) = VariableAddress[c] :
5035-
# 1107| r0_14(glval<unsigned int &>) = VariableAddress[d] :
5036-
# 1107| mu0_15(unknown) = InlineAsm : ~mu0_2, 0:r0_11, 1:r0_12, 2:r0_13, 3:r0_14
5037-
# 1118| v0_16(void) = NoOp :
5032+
# 1106| r0_11(glval<unsigned int &>) = VariableAddress[a] :
5033+
# 1106| r0_12(glval<unsigned int &>) = VariableAddress[b] :
5034+
# 1106| r0_13(glval<unsigned int &>) = VariableAddress[c] :
5035+
# 1106| r0_14(glval<unsigned int &>) = VariableAddress[d] :
5036+
# 1106| mu0_15(unknown) = ^InlineAsm : ~mu0_2, 0:r0_11, 1:r0_12, 2:r0_13, 3:r0_14
5037+
# 1111| v0_16(void) = NoOp :
50385038
# 1104| v0_17(void) = ReturnVoid :
50395039
# 1104| v0_18(void) = UnmodeledUse : mu*
50405040
# 1104| v0_19(void) = ExitFunction :

cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ ssa.cpp:
719719
# 179| mu0_2(unknown) = UnmodeledDefinition :
720720
# 179| r0_3(glval<int *>) = VariableAddress[p] :
721721
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
722-
# 180| m0_5(unknown) = InlineAsm : ~mu0_2
722+
# 180| m0_5(unknown) = ^InlineAsm : ~mu0_2
723723
# 180| m0_6(unknown) = Chi : total:m0_1, partial:m0_5
724724
# 181| r0_7(glval<int>) = VariableAddress[#return] :
725725
# 181| r0_8(glval<int *>) = VariableAddress[p] :
@@ -748,13 +748,13 @@ ssa.cpp:
748748
# 184| r0_12(glval<unsigned int &>) = VariableAddress[d] :
749749
# 184| m0_13(unsigned int &) = InitializeParameter[d] : &:r0_12
750750
# 184| m0_14(unknown) = Chi : total:m0_11, partial:m0_13
751-
# 187| r0_15(glval<unsigned int &>) = VariableAddress[a] :
752-
# 187| r0_16(glval<unsigned int &>) = VariableAddress[b] :
753-
# 187| r0_17(glval<unsigned int &>) = VariableAddress[c] :
754-
# 187| r0_18(glval<unsigned int &>) = VariableAddress[d] :
755-
# 187| m0_19(unknown) = InlineAsm : ~mu0_2, 0:r0_15, 1:r0_16, 2:r0_17, 3:r0_18
756-
# 187| m0_20(unknown) = Chi : total:m0_14, partial:m0_19
757-
# 199| v0_21(void) = NoOp :
751+
# 186| r0_15(glval<unsigned int &>) = VariableAddress[a] :
752+
# 186| r0_16(glval<unsigned int &>) = VariableAddress[b] :
753+
# 186| r0_17(glval<unsigned int &>) = VariableAddress[c] :
754+
# 186| r0_18(glval<unsigned int &>) = VariableAddress[d] :
755+
# 186| m0_19(unknown) = ^InlineAsm : ~mu0_2, 0:r0_15, 1:r0_16, 2:r0_17, 3:r0_18
756+
# 186| m0_20(unknown) = Chi : total:m0_14, partial:m0_19
757+
# 192| v0_21(void) = NoOp :
758758
# 184| v0_22(void) = ReturnVoid :
759759
# 184| v0_23(void) = UnmodeledUse : mu*
760760
# 184| v0_24(void) = ExitFunction :

cpp/ql/test/library-tests/ir/ssa/ssa.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,17 +183,10 @@ int AsmStmt(int *p) {
183183

184184
static void AsmStmtWithOutputs(unsigned int& a, unsigned int& b, unsigned int& c, unsigned int& d)
185185
{
186-
#if defined(__GNUC__)
187186
__asm__ __volatile__
188187
(
189188
"cpuid\n\t"
190189
: "+a" (a), "+b" (b)
191190
: "c" (c), "d" (d)
192191
);
193-
#else
194-
a++;
195-
b++;
196-
c++;
197-
d++;
198-
#endif
199192
}

cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ ssa.cpp:
691691
# 179| mu0_2(unknown) = UnmodeledDefinition :
692692
# 179| r0_3(glval<int *>) = VariableAddress[p] :
693693
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
694-
# 180| mu0_5(unknown) = InlineAsm : ~mu0_2
694+
# 180| mu0_5(unknown) = ^InlineAsm : ~mu0_2
695695
# 181| r0_6(glval<int>) = VariableAddress[#return] :
696696
# 181| r0_7(glval<int *>) = VariableAddress[p] :
697697
# 181| r0_8(int *) = Load : &:r0_7, m0_4
@@ -715,12 +715,12 @@ ssa.cpp:
715715
# 184| mu0_8(unsigned int &) = InitializeParameter[c] : &:r0_7
716716
# 184| r0_9(glval<unsigned int &>) = VariableAddress[d] :
717717
# 184| mu0_10(unsigned int &) = InitializeParameter[d] : &:r0_9
718-
# 187| r0_11(glval<unsigned int &>) = VariableAddress[a] :
719-
# 187| r0_12(glval<unsigned int &>) = VariableAddress[b] :
720-
# 187| r0_13(glval<unsigned int &>) = VariableAddress[c] :
721-
# 187| r0_14(glval<unsigned int &>) = VariableAddress[d] :
722-
# 187| mu0_15(unknown) = InlineAsm : ~mu0_2, 0:r0_11, 1:r0_12, 2:r0_13, 3:r0_14
723-
# 199| v0_16(void) = NoOp :
718+
# 186| r0_11(glval<unsigned int &>) = VariableAddress[a] :
719+
# 186| r0_12(glval<unsigned int &>) = VariableAddress[b] :
720+
# 186| r0_13(glval<unsigned int &>) = VariableAddress[c] :
721+
# 186| r0_14(glval<unsigned int &>) = VariableAddress[d] :
722+
# 186| mu0_15(unknown) = ^InlineAsm : ~mu0_2, 0:r0_11, 1:r0_12, 2:r0_13, 3:r0_14
723+
# 192| v0_16(void) = NoOp :
724724
# 184| v0_17(void) = ReturnVoid :
725725
# 184| v0_18(void) = UnmodeledUse : mu*
726726
# 184| v0_19(void) = ExitFunction :

0 commit comments

Comments
 (0)