Skip to content

Commit bafa3d7

Browse files
authored
Merge pull request #101 from nickrolfe/edg5
C++: test fixes for extractor frontend upgrade
2 parents 59ddda8 + 7cf550a commit bafa3d7

File tree

17 files changed

+297
-247
lines changed

17 files changed

+297
-247
lines changed

cpp/ql/test/library-tests/clang_builtin_macros/extended.c renamed to cpp/ql/test/library-tests/clang_builtin_macros/extended.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// semmle-extractor-options: --edg --clang --edg --c++11 --edg --nullptr
2+
13
static int has_nullptr_f = __has_feature(cxx_nullptr);
24
static int has_nullptr_e = __has_extension(cxx_nullptr);
3-
// semmle-extractor-options: --edg --clang --edg --c++ --edg --nullptr

cpp/ql/test/library-tests/clang_builtin_macros/values.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
| | gp_offset | <no initialiser value> |
33
| | overflow_arg_area | <no initialiser value> |
44
| | reg_save_area | <no initialiser value> |
5-
| extended.c | has_nullptr_e | 1 |
6-
| extended.c | has_nullptr_f | 1 |
5+
| extended.cpp | has_nullptr_e | 1 |
6+
| extended.cpp | has_nullptr_f | 1 |
77
| gcc492.c | has_include | 1 |
88
| gcc492.c | has_macro_include | 1 |
99
| gcc492.c | has_missing_include | 0 |

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ void DynamicCast() {
223223
PolymorphicBase* pb = &b;
224224
PolymorphicDerived* pd = &d;
225225

226-
// These two casts are represented as BaseClassCasts because they can be resolved at compile time.
227-
pb = dynamic_cast<PolymorphicBase*>(pd);
226+
// These two casts were previously represented as BaseClassCasts because they were resolved at compile time, but the front-end no longer performs this optimization.
227+
pb = dynamic_cast<PolymorphicBase*>(pd);
228228
PolymorphicBase& rb = dynamic_cast<PolymorphicBase&>(d);
229229

230230
pd = dynamic_cast<PolymorphicDerived*>(pb);

cpp/ql/test/library-tests/conversions/conversions.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@
137137
| conversions.cpp:207:7:207:31 | reinterpret_cast<long>... | pointer to integral conversion | prval | long | void * |
138138
| conversions.cpp:208:7:208:14 | (void *)... | integral to pointer conversion | prval | void * | long |
139139
| conversions.cpp:209:7:209:32 | reinterpret_cast<void *>... | integral to pointer conversion | prval | void * | long |
140-
| conversions.cpp:227:8:227:41 | (PolymorphicBase *)... | base class conversion | prval | PolymorphicBase * | PolymorphicDerived * |
141-
| conversions.cpp:228:25:228:57 | (PolymorphicBase)... | base class conversion | lval | PolymorphicBase | PolymorphicDerived |
140+
| conversions.cpp:227:8:227:41 | dynamic_cast<PolymorphicBase *>... | dynamic_cast | prval | PolymorphicBase * | PolymorphicDerived * |
141+
| conversions.cpp:228:25:228:57 | dynamic_cast<PolymorphicBase>... | dynamic_cast | lval | PolymorphicBase | PolymorphicDerived |
142142
| conversions.cpp:230:8:230:44 | dynamic_cast<PolymorphicDerived *>... | dynamic_cast | prval | PolymorphicDerived * | PolymorphicBase * |
143143
| conversions.cpp:231:28:231:63 | dynamic_cast<PolymorphicDerived>... | dynamic_cast | lval | PolymorphicDerived | PolymorphicBase |
144144
| conversions.cpp:235:7:235:16 | (void *)... | pointer conversion | prval | void * | ..(*)(..) |

cpp/ql/test/library-tests/friends/loop/friends.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
| file://:0:0:0:0 | F<D>'s friend | loop.cpp:5:26:5:26 | E<D> |
77
| loop.cpp:6:5:6:5 | E<T>'s friend | loop.cpp:5:26:5:26 | E<T> |
88
| loop.cpp:7:5:7:5 | E<T>'s friend | loop.cpp:7:36:7:36 | F<U> |
9-
| loop.cpp:11:5:11:5 | F<T>'s friend | loop.cpp:5:26:5:26 | E<T> |
9+
| loop.cpp:11:5:11:5 | F<T>'s friend | loop.cpp:11:36:11:36 | E<U> |

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5583,8 +5583,8 @@ ir.cpp:
55835583
# 857| 0: pb
55845584
# 857| Type = PolymorphicBase *
55855585
# 857| ValueCategory = lvalue
5586-
# 857| 1: (PolymorphicBase *)...
5587-
# 857| Conversion = base class conversion
5586+
# 857| 1: dynamic_cast<PolymorphicBase *>...
5587+
# 857| Conversion = dynamic_cast
55885588
# 857| Type = PolymorphicBase *
55895589
# 857| ValueCategory = prvalue
55905590
# 857| expr: pd
@@ -5597,8 +5597,8 @@ ir.cpp:
55975597
# 858| expr: (reference to)
55985598
# 858| Type = PolymorphicBase &
55995599
# 858| ValueCategory = prvalue
5600-
# 858| expr: (PolymorphicBase)...
5601-
# 858| Conversion = base class conversion
5600+
# 858| expr: dynamic_cast<PolymorphicBase>...
5601+
# 858| Conversion = dynamic_cast
56025602
# 858| Type = PolymorphicBase
56035603
# 858| ValueCategory = lvalue
56045604
# 858| expr: d

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

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3559,52 +3559,52 @@ ir.cpp:
35593559

35603560
# 849| DynamicCast() -> void
35613561
# 849| Block 0
3562-
# 849| v0_0(void) = EnterFunction :
3563-
# 849| mu0_1(unknown) = UnmodeledDefinition :
3564-
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
3565-
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
3566-
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
3567-
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
3568-
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
3569-
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
3570-
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
3571-
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
3572-
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
3573-
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3574-
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
3575-
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
3576-
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3577-
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
3578-
# 857| r0_16(PolymorphicBase *) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_15
3579-
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
3580-
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
3581-
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
3582-
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
3583-
# 858| r0_21(glval<PolymorphicBase>) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_20
3584-
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
3585-
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
3586-
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
3587-
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
3588-
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3589-
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
3590-
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
3591-
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
3592-
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
3593-
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
3594-
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
3595-
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
3596-
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
3597-
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
3598-
# 863| m0_36(void *) = Store : r0_32, r0_35
3599-
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
3600-
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3601-
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
3602-
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
3603-
# 864| m0_41(void *) = Store : r0_37, r0_40
3604-
# 865| v0_42(void) = NoOp :
3605-
# 849| v0_43(void) = ReturnVoid :
3606-
# 849| v0_44(void) = UnmodeledUse : mu*
3607-
# 849| v0_45(void) = ExitFunction :
3562+
# 849| v0_0(void) = EnterFunction :
3563+
# 849| mu0_1(unknown) = UnmodeledDefinition :
3564+
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
3565+
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
3566+
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
3567+
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
3568+
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
3569+
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
3570+
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
3571+
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
3572+
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
3573+
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3574+
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
3575+
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
3576+
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3577+
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
3578+
# 857| r0_16(PolymorphicBase *) = CheckedConvertOrNull : r0_15
3579+
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
3580+
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
3581+
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
3582+
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
3583+
# 858| r0_21(glval<PolymorphicBase>) = CheckedConvertOrThrow : r0_20
3584+
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
3585+
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
3586+
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
3587+
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
3588+
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3589+
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
3590+
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
3591+
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
3592+
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
3593+
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
3594+
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
3595+
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
3596+
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
3597+
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
3598+
# 863| m0_36(void *) = Store : r0_32, r0_35
3599+
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
3600+
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
3601+
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
3602+
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
3603+
# 864| m0_41(void *) = Store : r0_37, r0_40
3604+
# 865| v0_42(void) = NoOp :
3605+
# 849| v0_43(void) = ReturnVoid :
3606+
# 849| v0_44(void) = UnmodeledUse : mu*
3607+
# 849| v0_45(void) = ExitFunction :
36083608

36093609
# 867| String::String() -> void
36103610
# 867| Block 0

0 commit comments

Comments
 (0)