summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2019-08-02 08:05:14 +0000
committerPeter Smith <peter.smith@linaro.org>2019-08-02 08:05:14 +0000
commitf5b91f2a0f9d34f4ba63bc358279c0a5372dfb76 (patch)
tree06ec117ab7c00d86ef170731d7f3591a0a636013
parent044d8c486bb4fd6d445e4333475e62045bf47888 (diff)
downloadbcm5719-llvm-f5b91f2a0f9d34f4ba63bc358279c0a5372dfb76.tar.gz
bcm5719-llvm-f5b91f2a0f9d34f4ba63bc358279c0a5372dfb76.zip
[AliasAnalysis] Initialize a member variable that may be used by unit test.
The unit tests in BasicAliasAnalysisTest use the alias analysis API directly and do not call setAAResults to initalize AAR. This gives a valgrind error "Conditional Jump depends on unitialized variable". On most buildbots the variable is nullptr, but in some cases it can be non nullptr leading to seemingly random failures. These tests were disabled in r366986. With the initialization they can be enabled again. Fixes PR42719 Differential Revision: https://reviews.llvm.org/D65568 llvm-svn: 367662
-rw-r--r--llvm/include/llvm/Analysis/AliasAnalysis.h2
-rw-r--r--llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp7
2 files changed, 3 insertions, 6 deletions
diff --git a/llvm/include/llvm/Analysis/AliasAnalysis.h b/llvm/include/llvm/Analysis/AliasAnalysis.h
index 948341554f2..282142f51bb 100644
--- a/llvm/include/llvm/Analysis/AliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/AliasAnalysis.h
@@ -949,7 +949,7 @@ template <typename DerivedT> class AAResultBase {
/// A pointer to the AAResults object that this AAResult is
/// aggregated within. May be null if not aggregated.
- AAResults *AAR;
+ AAResults *AAR = nullptr;
/// Helper to dispatch calls back through the derived type.
DerivedT &derived() { return static_cast<DerivedT &>(*this); }
diff --git a/llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp b/llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp
index c08366ebc6e..f69d2d14a6c 100644
--- a/llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp
+++ b/llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp
@@ -64,13 +64,10 @@ public:
: M("BasicAATest", C), B(C), DL(DLString), TLI(TLII), F(nullptr) {}
};
-// FIXME: Both of these are disabled at the moment due to strange buildbot
-// failures. Please see https://bugs.llvm.org/show_bug.cgi?id=42719
-
// Check that a function arg can't trivially alias a global when we're accessing
// >sizeof(global) bytes through that arg, unless the access size is just an
// upper-bound.
-TEST_F(BasicAATest, DISABLED_AliasInstWithObjectOfImpreciseSize) {
+TEST_F(BasicAATest, AliasInstWithObjectOfImpreciseSize) {
F = Function::Create(
FunctionType::get(B.getVoidTy(), {B.getInt32Ty()->getPointerTo()}, false),
GlobalValue::ExternalLinkage, "F", &M);
@@ -104,7 +101,7 @@ TEST_F(BasicAATest, DISABLED_AliasInstWithObjectOfImpreciseSize) {
// Check that we fall back to MayAlias if we see an access of an entire object
// that's just an upper-bound.
-TEST_F(BasicAATest, DISABLED_AliasInstWithFullObjectOfImpreciseSize) {
+TEST_F(BasicAATest, AliasInstWithFullObjectOfImpreciseSize) {
F = Function::Create(
FunctionType::get(B.getVoidTy(), {B.getInt64Ty()}, false),
GlobalValue::ExternalLinkage, "F", &M);
OpenPOWER on IntegriCloud