summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-check-stmt.cpp2
-rw-r--r--tests/bugs/serialization/gh-6892.slang9
2 files changed, 10 insertions, 1 deletions
diff --git a/source/slang/slang-check-stmt.cpp b/source/slang/slang-check-stmt.cpp
index 8a914c60b..9525f71c9 100644
--- a/source/slang/slang-check-stmt.cpp
+++ b/source/slang/slang-check-stmt.cpp
@@ -880,7 +880,7 @@ void SemanticsStmtVisitor::tryInferLoopMaxIterations(ForStmt* stmt)
// if the loop body modifies the induction variable.
//
auto maxItersAttr = m_astBuilder->create<InferredMaxItersAttribute>();
- auto litExpr = m_astBuilder->create<LiteralExpr>();
+ auto litExpr = m_astBuilder->create<IntegerLiteralExpr>();
litExpr->type.type = m_astBuilder->getIntType();
litExpr->token.setName(getNamePool()->getName(String(iterations)));
maxItersAttr->args.add(litExpr);
diff --git a/tests/bugs/serialization/gh-6892.slang b/tests/bugs/serialization/gh-6892.slang
new file mode 100644
index 000000000..1235c292c
--- /dev/null
+++ b/tests/bugs/serialization/gh-6892.slang
@@ -0,0 +1,9 @@
+//TEST:COMPILE: tests/bugs/serialization/gh-6892.slang -o tests/bugs/serialization/gh-6892.slang-module
+
+// assertion failure when compiling to a slang module
+
+void f()
+{
+ for (int i = 0; i < 1; ++i)
+ ;
+}