summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2017-07-23 19:59:29 -0700
committerGitHub <noreply@github.com>2017-07-23 19:59:29 -0700
commit29fb1d781a763a8ca3369d03a75dbe1976571368 (patch)
treebe9330c4519a33e76b93819e5676d1b0c137880b /source
parent1d4633fe67d23767ca41fe71b90687df1ab5e402 (diff)
parente7241a921407ae79e0767956127f7ed501c5eeb1 (diff)
Merge pull request #143 from tfoleyNV/fixup-for-glslang-bug-fixup
Fixup for the glslang bug workaround
Diffstat (limited to 'source')
-rw-r--r--source/slang/lower.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/slang/lower.cpp b/source/slang/lower.cpp
index d634b114b..ba6b48509 100644
--- a/source/slang/lower.cpp
+++ b/source/slang/lower.cpp
@@ -3006,8 +3006,16 @@ return loweredExpr;
}
RefPtr<VarDeclBase> loweredDecl = loweredDeclClass.createInstance();
+
+ // Note: we lower the declaration (including its initialization expression, if any)
+ // *before* we add the declaration to the current context (e.g., a statement being
+ // built), so that any operations inside the initialization expression that
+ // might need to inject statements/temporaries/whatever happen *before*
+ // the declaration of this variable.
+ auto result = lowerSimpleVarDeclCommon(loweredDecl, decl, loweredType);
addDecl(loweredDecl);
- return lowerSimpleVarDeclCommon(loweredDecl, decl, loweredType);
+
+ return result;
}
RefPtr<VarDeclBase> lowerVarDeclCommon(