mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-15 04:08:07 +00:00
reject undef/zero labels. This fixes PR3281:crash0[56].ll with these
diagnostics: llvm-as: crash05.ll:1:14: invalid type for null constant global label zeroinitializer addrspace (75), section "c" ^ llvm-as: crash06.ll:2:14: invalid type for null constant udiv label zeroinitializer, @0 ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61681 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4a1c4a414c
commit
e67c1aa398
@ -1906,6 +1906,9 @@ bool LLParser::ConvertGlobalValIDToValue(const Type *Ty, ValID &ID,
|
||||
V = ConstantPointerNull::get(cast<PointerType>(Ty));
|
||||
return false;
|
||||
case ValID::t_Undef:
|
||||
// FIXME: LabelTy should not be a first-class type.
|
||||
if (!Ty->isFirstClassType() || Ty == Type::LabelTy)
|
||||
return Error(ID.Loc, "invalid type for undef constant");
|
||||
V = UndefValue::get(Ty);
|
||||
return false;
|
||||
case ValID::t_EmptyArray:
|
||||
@ -1914,7 +1917,8 @@ bool LLParser::ConvertGlobalValIDToValue(const Type *Ty, ValID &ID,
|
||||
V = UndefValue::get(Ty);
|
||||
return false;
|
||||
case ValID::t_Zero:
|
||||
if (!Ty->isFirstClassType())
|
||||
// FIXME: LabelTy should not be a first-class type.
|
||||
if (!Ty->isFirstClassType() || Ty == Type::LabelTy)
|
||||
return Error(ID.Loc, "invalid type for null constant");
|
||||
V = Constant::getNullValue(Ty);
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user