summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/Parser.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2015-07-30 15:53:58 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2015-07-30 15:53:58 +0000
commitd6665178a87e5b79528b71d46a721fc247762c05 (patch)
tree5d02382f8020c59a05e0c273334e60f024209797 /clang/lib/Parse/Parser.cpp
parentca25643a05d3d85ef9f0f2f931b30fd83e2c21a6 (diff)
downloadbcm5719-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.cpp3
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");
OpenPOWER on IntegriCloud