mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
Fix invalid cast.
Fixes PR22525. Patch by Ben Longbons with testcase by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230271 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -7,12 +7,14 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/AsmParser/Parser.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/InstrTypes.h"
|
||||
#include "llvm/IR/Instruction.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Support/SourceMgr.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace llvm {
|
||||
@@ -347,5 +349,19 @@ TEST(ConstantsTest, GEPReplaceWithConstant) {
|
||||
ASSERT_EQ(GEP->getOperand(0), Alias);
|
||||
}
|
||||
|
||||
TEST(ConstantsTest, AliasCAPI) {
|
||||
LLVMContext Context;
|
||||
SMDiagnostic Error;
|
||||
std::unique_ptr<Module> M =
|
||||
parseAssemblyString("@g = global i32 42", Error, Context);
|
||||
GlobalVariable *G = M->getGlobalVariable("g");
|
||||
Type *I16Ty = Type::getInt16Ty(Context);
|
||||
Type *I16PTy = PointerType::get(I16Ty, 0);
|
||||
Constant *Aliasee = ConstantExpr::getBitCast(G, I16PTy);
|
||||
LLVMValueRef AliasRef =
|
||||
LLVMAddAlias(wrap(M.get()), wrap(I16PTy), wrap(Aliasee), "a");
|
||||
ASSERT_EQ(unwrap<GlobalAlias>(AliasRef)->getAliasee(), Aliasee);
|
||||
}
|
||||
|
||||
} // end anonymous namespace
|
||||
} // end namespace llvm
|
||||
|
Reference in New Issue
Block a user