[llvm] r367662 - [AliasAnalysis] Initialize a member variable that may be used by unit test.

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 5 02:01:37 PDT 2019


Merged to release_90 in r367818.

On Fri, Aug 2, 2019 at 10:04 AM Peter Smith via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
> Author: psmith
> Date: Fri Aug  2 01:05:14 2019
> New Revision: 367662
>
> URL: http://llvm.org/viewvc/llvm-project?rev=367662&view=rev
> Log:
> [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
>
>
> Modified:
>     llvm/trunk/include/llvm/Analysis/AliasAnalysis.h
>     llvm/trunk/unittests/Analysis/BasicAliasAnalysisTest.cpp
>
> Modified: llvm/trunk/include/llvm/Analysis/AliasAnalysis.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/AliasAnalysis.h?rev=367662&r1=367661&r2=367662&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Analysis/AliasAnalysis.h (original)
> +++ llvm/trunk/include/llvm/Analysis/AliasAnalysis.h Fri Aug  2 01:05:14 2019
> @@ -949,7 +949,7 @@ template <typename DerivedT> class AARes
>
>    /// 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); }
>
> Modified: llvm/trunk/unittests/Analysis/BasicAliasAnalysisTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Analysis/BasicAliasAnalysisTest.cpp?rev=367662&r1=367661&r2=367662&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Analysis/BasicAliasAnalysisTest.cpp (original)
> +++ llvm/trunk/unittests/Analysis/BasicAliasAnalysisTest.cpp Fri Aug  2 01:05:14 2019
> @@ -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_AliasInstWi
>
>  // 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);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list