//===--- GlobalsModRefTest.cpp - Mixed TBAA unit tests --------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "llvm/Analysis/GlobalsModRef.h" #include "llvm/AsmParser/Parser.h" #include "llvm/Support/SourceMgr.h" #include "gtest/gtest.h" using namespace llvm; TEST(GlobalsModRef, OptNone) { StringRef Assembly = R"( define void @f() optnone { ret void } )"; LLVMContext Context; SMDiagnostic Error; auto M = parseAssemblyString(Assembly, Error, Context); ASSERT_TRUE(M) << "Bad assembly?"; const auto &funcs = M->functions(); ASSERT_NE(funcs.begin(), funcs.end()); EXPECT_EQ(std::next(funcs.begin()), funcs.end()); const Function &F = *funcs.begin(); Triple Trip(M->getTargetTriple()); TargetLibraryInfoImpl TLII(Trip); TargetLibraryInfo TLI(TLII); llvm::CallGraph CG(*M); auto AAR = GlobalsAAResult::analyzeModule(*M, TLI, CG); EXPECT_EQ(FMRB_UnknownModRefBehavior, AAR.getModRefBehavior(&F)); }