From f9554e1542bbe06b4703854379c0a37552cff901 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Sat, 8 Nov 2025 22:37:16 +0100 Subject: [PATCH] C++: Give proper `getName`s to more types and fix QLdoc --- cpp/ql/lib/semmle/code/cpp/NameQualifiers.qll | 4 ++-- cpp/ql/lib/semmle/code/cpp/Type.qll | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/NameQualifiers.qll b/cpp/ql/lib/semmle/code/cpp/NameQualifiers.qll index 12434f17f01..2efca72d098 100644 --- a/cpp/ql/lib/semmle/code/cpp/NameQualifiers.qll +++ b/cpp/ql/lib/semmle/code/cpp/NameQualifiers.qll @@ -144,14 +144,14 @@ class NameQualifiableElement extends Element, @namequalifiableelement { class NameQualifyingElement extends Element, @namequalifyingelement { /** * Gets a name qualifier for which this is the qualifying namespace or - * user-defined type. For example: class `X` is the + * user-defined type, or decltype. For example: class `X` is the * `NameQualifyingElement` and `X::` is the `NameQualifier`. */ NameQualifier getANameQualifier() { namequalifiers(unresolveElement(result), _, underlyingElement(this), _) } - /** Gets the name of this namespace or user-defined type. */ + /** Gets the name of this namespace, user-defined type, or decltype. */ string getName() { none() } } diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll index 35b56882d7b..d9a61865c96 100644 --- a/cpp/ql/lib/semmle/code/cpp/Type.qll +++ b/cpp/ql/lib/semmle/code/cpp/Type.qll @@ -1146,7 +1146,7 @@ class DerivedType extends Type, @derivedtype { * decltype(a) b; * ``` */ -class Decltype extends Type { +class Decltype extends Type, NameQualifyingElement { Decltype() { decltypes(underlyingElement(this), _, 0, _, _) } override string getAPrimaryQlClass() { result = "Decltype" } @@ -1187,7 +1187,7 @@ class Decltype extends Type { override string toString() { result = "decltype(...)" } - override string getName() { none() } + override string getName() { result = "decltype(...)" } override int getSize() { result = this.getBaseType().getSize() } @@ -1247,7 +1247,7 @@ class TypeofType extends Type { override string toString() { result = "typeof(...)" } - override string getName() { none() } + override string getName() { result = "typeof(...)" } override int getSize() { result = this.getBaseType().getSize() } @@ -1311,8 +1311,6 @@ class TypeofTypeType extends TypeofType { Type getType() { type_operators(underlyingElement(this), unresolveElement(result), _, _) } override string getAPrimaryQlClass() { result = "TypeofTypeType" } - - override string toString() { result = "typeof(...)" } } /** @@ -1394,7 +1392,7 @@ class IntrinsicTransformedType extends Type { override Type resolveTypedefs() { result = this.getBaseType().resolveTypedefs() } - override string getName() { none() } + override string getName() { result = this.getIntrinsicName() + "(...)" } override int getSize() { result = this.getBaseType().getSize() }