summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/InstructionSimplify.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2014-08-28 03:23:47 +0000
committerRichard Trieu <rtrieu@google.com>2014-08-28 03:23:47 +0000
commit8d08a2770ed6ed5fb65b748f100bd8242c80132d (patch)
tree363a70cd9e4cf9f0daf5fdc3e5066cb971ef5f0b /llvm/lib/Analysis/InstructionSimplify.cpp
parent31328168bbf8086c5bb22983fb89783fc8de9067 (diff)
downloadbcm5719-llvm-8d08a2770ed6ed5fb65b748f100bd8242c80132d.tar.gz
bcm5719-llvm-8d08a2770ed6ed5fb65b748f100bd8242c80132d.zip
During cross field uninitialized checking, when processing an assignment,
don't mark the field as initialized until the next initializer instead of instantly. Since this checker is AST based, statements are processed in tree order instead of following code flow. This can result in different warnings from just reordering the code. Also changed to use one checker per constructor instead of creating a new checker per field. class T { int x, y; // Already warns T(bool b) : x(!b ? (1 + y) : (y = 5)) {} // New warning added here, previously (1 + y) comes after (y = 5) in the AST // preventing the warning. T(bool b) : x(b ? (y = 5) : (1 + y)) {} }; llvm-svn: 216641
Diffstat (limited to 'llvm/lib/Analysis/InstructionSimplify.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud