summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-c-like.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-c-like.cpp')
-rw-r--r--source/slang/slang-emit-c-like.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/slang-emit-c-like.cpp b/source/slang/slang-emit-c-like.cpp
index 020c31fdc..790162c5b 100644
--- a/source/slang/slang-emit-c-like.cpp
+++ b/source/slang/slang-emit-c-like.cpp
@@ -693,6 +693,13 @@ bool CLikeSourceEmitter::maybeEmitParens(EmitOpInfo& outerPrec, const EmitOpInfo
{
needParens = true;
}
+ // a ^ b * c => (a ^ b) * c
+ else if (
+ prec.rightPrecedence == EPrecedence::kEPrecedence_BitXor_Right &&
+ outerPrec.rightPrecedence == EPrecedence::kEPrecedence_Multiplicative_Left)
+ {
+ needParens = true;
+ }
if (needParens)
{