diff options
Diffstat (limited to 'source/slang/slang-ast-builder.cpp')
| -rw-r--r-- | source/slang/slang-ast-builder.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source/slang/slang-ast-builder.cpp b/source/slang/slang-ast-builder.cpp index a672c1b7e..ce4c32c3a 100644 --- a/source/slang/slang-ast-builder.cpp +++ b/source/slang/slang-ast-builder.cpp @@ -290,9 +290,9 @@ Type* ASTBuilder::getSpecializedBuiltinType(ArrayView<Val*> genericArgs, const c return rsType; } -PtrType* ASTBuilder::getPtrType(Type* valueType) +PtrType* ASTBuilder::getPtrType(Type* valueType, AddressSpace addrSpace) { - return dynamicCast<PtrType>(getPtrType(valueType, "PtrType")); + return dynamicCast<PtrType>(getPtrType(valueType, addrSpace, "PtrType")); } // Construct the type `Out<valueType>` @@ -306,9 +306,9 @@ InOutType* ASTBuilder::getInOutType(Type* valueType) return dynamicCast<InOutType>(getPtrType(valueType, "InOutType")); } -RefType* ASTBuilder::getRefType(Type* valueType) +RefType* ASTBuilder::getRefType(Type* valueType, AddressSpace addrSpace) { - return dynamicCast<RefType>(getPtrType(valueType, "RefType")); + return dynamicCast<RefType>(getPtrType(valueType, addrSpace, "RefType")); } ConstRefType* ASTBuilder::getConstRefType(Type* valueType) @@ -327,6 +327,12 @@ PtrTypeBase* ASTBuilder::getPtrType(Type* valueType, char const* ptrTypeName) return as<PtrTypeBase>(getSpecializedBuiltinType(valueType, ptrTypeName)); } +PtrTypeBase* ASTBuilder::getPtrType(Type* valueType, AddressSpace addrSpace, char const* ptrTypeName) +{ + Val* args[] = { valueType, getIntVal(getUInt64Type(), (IntegerLiteralValue)addrSpace) }; + return as<PtrTypeBase>(getSpecializedBuiltinType(makeArrayView(args), ptrTypeName)); +} + ArrayExpressionType* ASTBuilder::getArrayType(Type* elementType, IntVal* elementCount) { if (!elementCount) |
