Skip to content

Commit 8ec1593

Browse files
C++/C#: Blob -> Opaque
1 parent 6e61b1d commit 8ec1593

File tree

9 files changed

+71
-71
lines changed

9 files changed

+71
-71
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ private newtype TIRType =
2828
TIRFunctionAddressType(int byteSize) {
2929
Language::hasFunctionAddressType(byteSize)
3030
} or
31-
TIRBlobType(Language::BlobTypeTag tag, int byteSize) {
32-
Language::hasBlobType(tag, byteSize)
31+
TIROpaqueType(Language::OpaqueTypeTag tag, int byteSize) {
32+
Language::hasOpaqueType(tag, byteSize)
3333
}
3434

3535
/**
@@ -118,7 +118,7 @@ private class IRSizedType extends IRType {
118118
this = TIRFloatingPointType(byteSize) or
119119
this = TIRAddressType(byteSize) or
120120
this = TIRFunctionAddressType(byteSize) or
121-
this = TIRBlobType(_, byteSize)
121+
this = TIROpaqueType(_, byteSize)
122122
}
123123

124124
final override int getByteSize() { result = byteSize }
@@ -212,30 +212,30 @@ class IRFunctionAddressType extends IRSizedType, TIRFunctionAddressType {
212212
* A type with known size that does not fit any of the other kinds of type. Used to represent
213213
* classes, structs, unions, fixed-size arrays, pointers-to-member, and more.
214214
*/
215-
class IRBlobType extends IRSizedType, TIRBlobType {
216-
Language::BlobTypeTag tag;
215+
class IROpaqueType extends IRSizedType, TIROpaqueType {
216+
Language::OpaqueTypeTag tag;
217217

218-
IRBlobType() {
219-
this = TIRBlobType(tag, byteSize)
218+
IROpaqueType() {
219+
this = TIROpaqueType(tag, byteSize)
220220
}
221221

222222
final override string toString() {
223-
result = "blob" + byteSize.toString() + "{" + tag.toString() + "}"
223+
result = "opaque" + byteSize.toString() + "{" + tag.toString() + "}"
224224
}
225225

226226
final override string getIdentityString() {
227-
result = "blob" + byteSize.toString() + "{" + Language::getBlobTagIdentityString(tag) + "}"
227+
result = "opaque" + byteSize.toString() + "{" + Language::getOpaqueTagIdentityString(tag) + "}"
228228
}
229229

230230
final override Language::LanguageType getCanonicalLanguageType() {
231-
result = Language::getCanonicalBlobType(tag, byteSize)
231+
result = Language::getCanonicalOpaqueType(tag, byteSize)
232232
}
233233

234234
/**
235-
* Gets the "tag" that differentiates this type from other incompatible blob types that have the
235+
* Gets the "tag" that differentiates this type from other incompatible opaque types that have the
236236
* same size.
237237
*/
238-
final Language::BlobTypeTag getTag() { result = tag }
238+
final Language::OpaqueTypeTag getTag() { result = tag }
239239
}
240240

241241
module IRTypeSanity {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,9 @@ private module Cached {
304304
}
305305

306306
cached
307-
predicate needsUnknownBlobType(int byteSize) {
307+
predicate needsUnknownOpaqueType(int byteSize) {
308308
exists(TranslatedElement element |
309-
element.needsUnknownBlobType(byteSize)
309+
element.needsUnknownOpaqueType(byteSize)
310310
)
311311
}
312312

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ abstract class TranslatedElement extends TTranslatedElement {
616616
*/
617617
int getInstructionResultSize(InstructionTag tag) { none() }
618618

619-
predicate needsUnknownBlobType(int byteSize) { none() }
619+
predicate needsUnknownOpaqueType(int byteSize) { none() }
620620

621621
/**
622622
* If the instruction specified by `tag` is a `StringConstantInstruction`,

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ class TranslatedStringLiteralInitialization extends TranslatedDirectInitializati
205205
// space in the target array.
206206
tag = ZeroPadStringConstantTag() and
207207
opcode instanceof Opcode::Constant and
208-
resultType = getUnknownBlobType(elementCount * getElementType().getSize())
208+
resultType = getUnknownOpaqueType(elementCount * getElementType().getSize())
209209
or
210210
// The index of the first element to be zero initialized.
211211
tag = ZeroPadStringElementIndexTag() and
@@ -220,7 +220,7 @@ class TranslatedStringLiteralInitialization extends TranslatedDirectInitializati
220220
// Store the constant zero into the remainder of the string.
221221
tag = ZeroPadStringStoreTag() and
222222
opcode instanceof Opcode::Store and
223-
resultType = getUnknownBlobType(elementCount * getElementType().getSize())
223+
resultType = getUnknownOpaqueType(elementCount * getElementType().getSize())
224224
)
225225
)
226226
}
@@ -314,7 +314,7 @@ class TranslatedStringLiteralInitialization extends TranslatedDirectInitializati
314314
)
315315
}
316316

317-
override predicate needsUnknownBlobType(int byteSize) {
317+
override predicate needsUnknownOpaqueType(int byteSize) {
318318
exists(int elementCount |
319319
zeroInitRange(_, elementCount) and
320320
byteSize = elementCount * getElementType().getSize()
@@ -704,7 +704,7 @@ class TranslatedElementValueInitialization extends TranslatedElementInitializati
704704

705705
override int getElementIndex() { result = elementIndex }
706706

707-
override predicate needsUnknownBlobType(int byteSize) {
707+
override predicate needsUnknownOpaqueType(int byteSize) {
708708
elementCount != 0 and byteSize = elementCount * getElementType().getSize()
709709
}
710710

@@ -720,7 +720,7 @@ class TranslatedElementValueInitialization extends TranslatedElementInitializati
720720
if elementCount = 1 then
721721
result = getTypeForPRValue(getElementType())
722722
else
723-
result = getUnknownBlobType(elementCount * getElementType().getSize())
723+
result = getUnknownOpaqueType(elementCount * getElementType().getSize())
724724
}
725725
}
726726

cpp/ql/src/semmle/code/cpp/ir/internal/CppType.qll

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ predicate hasFunctionAddressType(int byteSize) {
119119
byteSize = getTypeSize(any(FunctionPointerIshType type))
120120
}
121121

122-
private predicate isBlobType(Type type) {
122+
private predicate isOpaqueType(Type type) {
123123
(
124124
exists(type.getSize()) and // Only include complete types
125125
(
@@ -132,12 +132,12 @@ private predicate isBlobType(Type type) {
132132
}
133133

134134
/**
135-
* Holds if an `IRBlobType` with the specified `tag` and `byteSize` should exist.
135+
* Holds if an `IROpaqueType` with the specified `tag` and `byteSize` should exist.
136136
*/
137-
predicate hasBlobType(Type tag, int byteSize) {
138-
isBlobType(tag) and byteSize = getTypeSize(tag)
137+
predicate hasOpaqueType(Type tag, int byteSize) {
138+
isOpaqueType(tag) and byteSize = getTypeSize(tag)
139139
or
140-
tag instanceof UnknownType and IRConstruction::needsUnknownBlobType(byteSize)
140+
tag instanceof UnknownType and IRConstruction::needsUnknownOpaqueType(byteSize)
141141
}
142142

143143
/**
@@ -147,11 +147,11 @@ private IRType getIRTypeForPRValue(Type type) {
147147
exists(Type unspecifiedType |
148148
unspecifiedType = type.getUnspecifiedType() |
149149
(
150-
isBlobType(unspecifiedType) and
151-
exists(IRBlobType blobType |
152-
blobType = result |
153-
blobType.getByteSize() = getTypeSize(type) and
154-
blobType.getTag() = unspecifiedType
150+
isOpaqueType(unspecifiedType) and
151+
exists(IROpaqueType opaqueType |
152+
opaqueType = result |
153+
opaqueType.getByteSize() = getTypeSize(type) and
154+
opaqueType.getTag() = unspecifiedType
155155
)
156156
) or
157157
unspecifiedType instanceof BoolType and result.(IRBooleanType).getByteSize() = type.getSize() or
@@ -174,8 +174,8 @@ private newtype TCppType =
174174
TGLValueAddressType(Type type) {
175175
any()
176176
} or
177-
TUnknownBlobType(int byteSize) {
178-
IRConstruction::needsUnknownBlobType(byteSize)
177+
TUnknownOpaqueType(int byteSize) {
178+
IRConstruction::needsUnknownOpaqueType(byteSize)
179179
} or
180180
TUnknownType()
181181

@@ -253,18 +253,18 @@ private class CppPRValueType extends CppWrappedType, TPRValueType {
253253
* occur in certain cases during IR construction, such as the type of a zero-initialized segment of
254254
* a partially-initialized array.
255255
*/
256-
private class CppUnknownBlobType extends CppType, TUnknownBlobType {
256+
private class CppUnknownOpaqueType extends CppType, TUnknownOpaqueType {
257257
int byteSize;
258258

259-
CppUnknownBlobType() {
260-
this = TUnknownBlobType(byteSize)
259+
CppUnknownOpaqueType() {
260+
this = TUnknownOpaqueType(byteSize)
261261
}
262262

263263
override final string toString() {
264264
result = "unknown[" + byteSize.toString() + "]"
265265
}
266266

267-
override final IRBlobType getIRType() {
267+
override final IROpaqueType getIRType() {
268268
result.getByteSize() = byteSize
269269
}
270270

@@ -397,9 +397,9 @@ CppFunctionGLValueType getFunctionGLValueType() {
397397
}
398398

399399
/**
400-
* Gets the `CppType` that represents a blob of unknown type with size `byteSize`.
400+
* Gets the `CppType` that represents a opaque of unknown type with size `byteSize`.
401401
*/
402-
CppUnknownBlobType getUnknownBlobType(int byteSize) {
402+
CppUnknownOpaqueType getUnknownOpaqueType(int byteSize) {
403403
result.getByteSize() = byteSize
404404
}
405405

@@ -512,22 +512,22 @@ CppPRValueType getCanonicalVoidType() {
512512
}
513513

514514
/**
515-
* Gets the `CppType` that is the canonical type for an `IRBlobType` with the specified `tag` and
515+
* Gets the `CppType` that is the canonical type for an `IROpaqueType` with the specified `tag` and
516516
* `byteSize`.
517517
*/
518-
CppType getCanonicalBlobType(Type tag, int byteSize) {
519-
isBlobType(tag) and
518+
CppType getCanonicalOpaqueType(Type tag, int byteSize) {
519+
isOpaqueType(tag) and
520520
result = TPRValueType(tag.getUnspecifiedType()) and
521521
getTypeSize(tag) = byteSize
522522
or
523-
tag instanceof UnknownType and result = getUnknownBlobType(byteSize)
523+
tag instanceof UnknownType and result = getUnknownOpaqueType(byteSize)
524524
}
525525

526526
/**
527-
* Gets a string that uniquely identifies an `IRBlobType` tag. This may be different from the usual
527+
* Gets a string that uniquely identifies an `IROpaqueType` tag. This may be different from the usual
528528
* `toString()` of the tag in order to ensure uniqueness.
529529
*/
530-
string getBlobTagIdentityString(Type tag) {
531-
hasBlobType(tag, _) and
530+
string getOpaqueTagIdentityString(Type tag) {
531+
hasOpaqueType(tag, _) and
532532
result = getTypeIdentityString(tag)
533533
}

cpp/ql/src/semmle/code/cpp/ir/internal/IRCppLanguage.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import CppType
77

88
class LanguageType = CppType;
99

10-
class BlobTypeTag = Cpp::Type;
10+
class OpaqueTypeTag = Cpp::Type;
1111

1212
class Function = Cpp::Function;
1313

csharp/ql/src/semmle/code/csharp/ir/implementation/IRType.qll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ private newtype TIRType =
2828
TIRFunctionAddressType(int byteSize) {
2929
Language::hasFunctionAddressType(byteSize)
3030
} or
31-
TIRBlobType(Language::BlobTypeTag tag, int byteSize) {
32-
Language::hasBlobType(tag, byteSize)
31+
TIROpaqueType(Language::OpaqueTypeTag tag, int byteSize) {
32+
Language::hasOpaqueType(tag, byteSize)
3333
}
3434

3535
/**
@@ -118,7 +118,7 @@ private class IRSizedType extends IRType {
118118
this = TIRFloatingPointType(byteSize) or
119119
this = TIRAddressType(byteSize) or
120120
this = TIRFunctionAddressType(byteSize) or
121-
this = TIRBlobType(_, byteSize)
121+
this = TIROpaqueType(_, byteSize)
122122
}
123123

124124
final override int getByteSize() { result = byteSize }
@@ -212,30 +212,30 @@ class IRFunctionAddressType extends IRSizedType, TIRFunctionAddressType {
212212
* A type with known size that does not fit any of the other kinds of type. Used to represent
213213
* classes, structs, unions, fixed-size arrays, pointers-to-member, and more.
214214
*/
215-
class IRBlobType extends IRSizedType, TIRBlobType {
216-
Language::BlobTypeTag tag;
215+
class IROpaqueType extends IRSizedType, TIROpaqueType {
216+
Language::OpaqueTypeTag tag;
217217

218-
IRBlobType() {
219-
this = TIRBlobType(tag, byteSize)
218+
IROpaqueType() {
219+
this = TIROpaqueType(tag, byteSize)
220220
}
221221

222222
final override string toString() {
223-
result = "blob" + byteSize.toString() + "{" + tag.toString() + "}"
223+
result = "opaque" + byteSize.toString() + "{" + tag.toString() + "}"
224224
}
225225

226226
final override string getIdentityString() {
227-
result = "blob" + byteSize.toString() + "{" + Language::getBlobTagIdentityString(tag) + "}"
227+
result = "opaque" + byteSize.toString() + "{" + Language::getOpaqueTagIdentityString(tag) + "}"
228228
}
229229

230230
final override Language::LanguageType getCanonicalLanguageType() {
231-
result = Language::getCanonicalBlobType(tag, byteSize)
231+
result = Language::getCanonicalOpaqueType(tag, byteSize)
232232
}
233233

234234
/**
235-
* Gets the "tag" that differentiates this type from other incompatible blob types that have the
235+
* Gets the "tag" that differentiates this type from other incompatible opaque types that have the
236236
* same size.
237237
*/
238-
final Language::BlobTypeTag getTag() { result = tag }
238+
final Language::OpaqueTypeTag getTag() { result = tag }
239239
}
240240

241241
module IRTypeSanity {

csharp/ql/src/semmle/code/csharp/ir/internal/CSharpType.qll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,17 @@ private int getContentSize(ValueOrRefType type) {
108108
)
109109
}
110110

111-
private predicate isBlobType(ValueOrRefType type) {
111+
private predicate isOpaqueType(ValueOrRefType type) {
112112
type instanceof Struct or
113113
type instanceof NullableType or
114114
type instanceof DecimalType
115115
}
116116

117117
/**
118-
* Holds if an `IRBlobType` with the specified `tag` and `byteSize` should exist.
118+
* Holds if an `IROpaqueType` with the specified `tag` and `byteSize` should exist.
119119
*/
120-
predicate hasBlobType(Type tag, int byteSize) {
121-
isBlobType(tag) and byteSize = getTypeSize(tag)
120+
predicate hasOpaqueType(Type tag, int byteSize) {
121+
isOpaqueType(tag) and byteSize = getTypeSize(tag)
122122
}
123123

124124
private Type getRepresentationType(Type type) {
@@ -135,10 +135,10 @@ private Type getRepresentationType(Type type) {
135135
private IRType getIRTypeForPRValue(Type type) {
136136
exists(Type repType |
137137
repType = getRepresentationType(type) |
138-
exists(IRBlobType blobType |
139-
blobType = result |
140-
blobType.getByteSize() = getTypeSize(repType) and
141-
blobType.getTag() = repType
138+
exists(IROpaqueType opaqueType |
139+
opaqueType = result |
140+
opaqueType.getByteSize() = getTypeSize(repType) and
141+
opaqueType.getTag() = repType
142142
)
143143
or
144144
result.(IRBooleanType).getByteSize() = repType.(BoolType).getSize()
@@ -159,7 +159,7 @@ private IRType getIRTypeForPRValue(Type type) {
159159
)
160160
}
161161

162-
string getBlobTagIdentityString(Type tag) {
162+
string getOpaqueTagIdentityString(Type tag) {
163163
result = tag.getQualifiedName()
164164
}
165165

@@ -412,11 +412,11 @@ CSharpPRValueType getCanonicalVoidType() {
412412
}
413413

414414
/**
415-
* Gets the `CSharpType` that is the canonical type for an `IRBlobType` with the specified `tag` and
415+
* Gets the `CSharpType` that is the canonical type for an `IROpaqueType` with the specified `tag` and
416416
* `byteSize`.
417417
*/
418-
CSharpPRValueType getCanonicalBlobType(Type tag, int byteSize) {
419-
isBlobType(tag) and
418+
CSharpPRValueType getCanonicalOpaqueType(Type tag, int byteSize) {
419+
isOpaqueType(tag) and
420420
result = TPRValueType(tag) and
421421
getTypeSize(tag) = byteSize
422422
}

csharp/ql/src/semmle/code/csharp/ir/internal/IRCSharpLanguage.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ private import IRUtilities
33
import CSharpType
44

55
class LanguageType = CSharpType;
6-
class BlobTypeTag = CSharp::ValueOrRefType;
6+
class OpaqueTypeTag = CSharp::ValueOrRefType;
77

88
class Function = CSharp::Callable;
99

0 commit comments

Comments
 (0)