diff options
Diffstat (limited to 'source/slang/slang-parser.cpp')
| -rw-r--r-- | source/slang/slang-parser.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index 77a2319d2..55b6afd6a 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -5502,6 +5502,7 @@ namespace Slang int lCount = 0; int uCount = 0; + int zCount = 0; int unknownCount = 0; while(suffixCursor < suffixEnd) { @@ -5515,6 +5516,10 @@ namespace Slang uCount++; break; + case 'z': case 'Z': + zCount++; + break; + default: unknownCount++; break; @@ -5527,25 +5532,33 @@ namespace Slang suffixBaseType = BaseType::Void; } // `u` or `ul` suffix -> `uint` - else if(uCount == 1 && (lCount <= 1)) + else if(uCount == 1 && (lCount <= 1) && zCount == 0) { suffixBaseType = BaseType::UInt; } // `l` suffix on integer -> `int` (== `long`) - else if(lCount == 1 && !uCount) + else if(lCount == 1 && !uCount && zCount == 0) { suffixBaseType = BaseType::Int; } // `ull` suffix -> `uint64_t` - else if(uCount == 1 && lCount == 2) + else if(uCount == 1 && lCount == 2 && zCount == 0) { suffixBaseType = BaseType::UInt64; } // `ll` suffix -> `int64_t` - else if(uCount == 0 && lCount == 2) + else if(uCount == 0 && lCount == 2 && zCount == 0) { suffixBaseType = BaseType::Int64; } + else if (uCount == 0 && zCount == 1) + { + suffixBaseType = BaseType::IntPtr; + } + else if (uCount == 1 && zCount == 1) + { + suffixBaseType = BaseType::UIntPtr; + } // TODO: do we need suffixes for smaller integer types? else { |
