diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2015-07-30 15:53:58 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2015-07-30 15:53:58 +0000 |
commit | d6665178a87e5b79528b71d46a721fc247762c05 (patch) | |
tree | 5d02382f8020c59a05e0c273334e60f024209797 /clang/lib/Parse/Parser.cpp | |
parent | ca25643a05d3d85ef9f0f2f931b30fd83e2c21a6 (diff) | |
download | bcm5719-llvm-d6665178a87e5b79528b71d46a721fc247762c05.tar.gz bcm5719-llvm-d6665178a87e5b79528b71d46a721fc247762c05.zip |
Fix sanitizer fallout from r243642
The memory-sanitizer build bot reported:
==5574== WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x7f03089e15f6 in
clang::Parser::TryAltiVecTokenOutOfLine(clang::DeclSpec&,
clang::SourceLocation, char const*&, unsigned int&, bool&)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6290:11
This is because the "Ident_pixel" variable was uninitialized
in the getLangOpts().ZVector case, but we'd still call into
clang::Parser::TryAltiVecTokenOutOfLine, which uses the variable.
The simplest fix for this without sprinkling !getLangOpts().ZVector
checks all over the code seems to be to just initialize the variable
to nullptr; this will then do the right thing on ZVector.
Checked in to unbreak the build bots.
llvm-svn: 243644
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r-- | clang/lib/Parse/Parser.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index 9716771efc4..0acd828d7c1 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -476,6 +476,9 @@ void Parser::Initialize() { Ident_super = &PP.getIdentifierTable().get("super"); + Ident_vector = nullptr; + Ident_bool = nullptr; + Ident_pixel = nullptr; if (getLangOpts().AltiVec || getLangOpts().ZVector) { Ident_vector = &PP.getIdentifierTable().get("vector"); Ident_bool = &PP.getIdentifierTable().get("bool"); |