diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-09-07 09:50:50 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-09-07 09:50:50 -0700 |
| commit | ced92a047e510480cff15be1a1cd102abffa3f82 (patch) | |
| tree | 470c20f7948693f39b7603645ad9d09fb693c459 | |
| parent | ad3539574f52634c51523cfec1747e7565ad8876 (diff) | |
Fixup: fix uninitialized memory bug
This is a bug that already existed in the IR code, but wasn't getting triggered on existing test cases, and only seems to affect the 64-bit target right now.
The "key" value being constructed to cache and re-use constants during IR generation wasn't actually being fully initialized, and so garbage values in it could cause the lookup of an existing value to fail where it should succeed.
| -rw-r--r-- | source/slang/ir.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/source/slang/ir.cpp b/source/slang/ir.cpp index e3647a47b..eadcd34d0 100644 --- a/source/slang/ir.cpp +++ b/source/slang/ir.cpp @@ -569,6 +569,7 @@ namespace Slang IRParentInst* parent = builder->shared->module; IRConstant keyInst; + memset(&keyInst, 0, sizeof(keyInst)); keyInst.op = op; keyInst.type.usedValue = type; memcpy(&keyInst.u, value, valueSize); |
