Skip to content

Commit 38fe45e

Browse files
committed
C++: Don't use dbtypes in Declaration.qll
1 parent 01dc438 commit 38fe45e

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

cpp/ql/src/semmle/code/cpp/Declaration.qll

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ abstract class AccessHolder extends Declaration {
309309
isDirectPublicBaseOf*(base, derived)
310310
or
311311
exists(DirectAccessHolder n |
312-
this.getEnclosingAccessHolder*() = mkElement(n) and
312+
this.getEnclosingAccessHolder*() = n and
313313
// Derivations using (4.2) or (4.3) at least once.
314314
n.thisCanAccessClassTrans(base, derived)
315315
)
@@ -379,7 +379,7 @@ abstract class AccessHolder extends Declaration {
379379
everyoneCouldAccessMember(memberClass, memberAccess, derived)
380380
or
381381
exists(DirectAccessHolder n |
382-
this.getEnclosingAccessHolder*() = mkElement(n) and
382+
this.getEnclosingAccessHolder*() = n and
383383
// Any other derivation.
384384
n.thisCouldAccessMember(memberClass, memberAccess, derived)
385385
)
@@ -396,11 +396,11 @@ abstract class AccessHolder extends Declaration {
396396
* `DirectAccessHolder`s. If a `DirectAccessHolder` contains an `AccessHolder`,
397397
* then the contained `AccessHolder` inherits its access rights.
398398
*/
399-
private class DirectAccessHolder extends @declaration {
399+
private class DirectAccessHolder extends Element {
400400
DirectAccessHolder() {
401-
mkElement(this) instanceof Class
401+
this instanceof Class
402402
or
403-
exists(FriendDecl fd | fd.getFriend() = mkElement(this))
403+
exists(FriendDecl fd | fd.getFriend() = this)
404404
}
405405

406406
/**
@@ -486,7 +486,7 @@ private class DirectAccessHolder extends @declaration {
486486
)
487487
or
488488
// Rule (5.4) followed by Rule (5.2)
489-
exists(Class between | mkElement(this).(AccessHolder).canAccessClass(between, derived) |
489+
exists(Class between | this.(AccessHolder).canAccessClass(between, derived) |
490490
between.accessOfBaseMember(memberClass, memberAccess)
491491
.hasName("private") and
492492
this.isFriendOfOrEqualTo(between)
@@ -539,12 +539,10 @@ private class DirectAccessHolder extends @declaration {
539539
}
540540

541541
private predicate isFriendOfOrEqualTo(Class c) {
542-
exists(FriendDecl fd | fd.getDeclaringClass() = c | mkElement(this) = fd.getFriend())
542+
exists(FriendDecl fd | fd.getDeclaringClass() = c | this = fd.getFriend())
543543
or
544-
mkElement(this) = c
544+
this = c
545545
}
546-
547-
string toString() { result = mkElement(this).(Declaration).toString() }
548546
}
549547

550548
/**
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
| typedefs.cpp:6:6:6:7 | f1 | typedefs.cpp:8:15:8:18 | TYPE | LocalTypedefType |
2-
| typedefs.cpp:6:6:6:7 | f1 | typedefs.cpp:9:9:9:9 | D | LocalClass, MetricClass, StructLikeClass |
2+
| typedefs.cpp:6:6:6:7 | f1 | typedefs.cpp:9:9:9:9 | D | DirectAccessHolder, LocalClass, MetricClass, StructLikeClass |

cpp/ql/test/library-tests/variables/variables/types.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
| _Imaginary long double | FloatingPointType | | | | |
1919
| __float128 | Float128Type | | | | |
2020
| __int128 | Int128Type | | | | |
21-
| __va_list_tag | MetricClass, Struct, StructLikeClass | | | | |
21+
| __va_list_tag | DirectAccessHolder, MetricClass, Struct, StructLikeClass | | | | |
2222
| __va_list_tag & | LValueReferenceType | | __va_list_tag | | |
23-
| address | MetricClass, Struct, StructLikeClass | | | | |
23+
| address | DirectAccessHolder, MetricClass, Struct, StructLikeClass | | | | |
2424
| address & | LValueReferenceType | | address | | |
2525
| address && | RValueReferenceType | | address | | |
2626
| auto | AutoType | | | | |

0 commit comments

Comments
 (0)