diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-07-23 19:59:29 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-23 19:59:29 -0700 |
| commit | 29fb1d781a763a8ca3369d03a75dbe1976571368 (patch) | |
| tree | be9330c4519a33e76b93819e5676d1b0c137880b /source | |
| parent | 1d4633fe67d23767ca41fe71b90687df1ab5e402 (diff) | |
| parent | e7241a921407ae79e0767956127f7ed501c5eeb1 (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.cpp | 10 |
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( |
