testcase and asmparser fix for PR4066

llvm-svn: 70080
This commit is contained in:
Chris Lattner 2009-04-25 21:26:00 +00:00
parent cde89e48b2
commit 4c73d7a9b8
2 changed files with 13 additions and 2 deletions

View File

@ -357,7 +357,9 @@ bool LLParser::ParseNamedGlobal() {
/// ParseAlias:
/// ::= GlobalVar '=' OptionalVisibility 'alias' OptionalLinkage Aliasee
/// Aliasee
/// ::= TypeAndValue | 'bitcast' '(' TypeAndValue 'to' Type ')'
/// ::= TypeAndValue
/// ::= 'bitcast' '(' TypeAndValue 'to' Type ')'
/// ::= 'getelementptr' '(' ... ')'
///
/// Everything through visibility has already been parsed.
///
@ -379,7 +381,8 @@ bool LLParser::ParseAlias(const std::string &Name, LocTy NameLoc,
Constant *Aliasee;
LocTy AliaseeLoc = Lex.getLoc();
if (Lex.getKind() != lltok::kw_bitcast) {
if (Lex.getKind() != lltok::kw_bitcast &&
Lex.getKind() != lltok::kw_getelementptr) {
if (ParseGlobalTypeAndValue(Aliasee)) return true;
} else {
// The bitcast dest type is not present, it is implied by the dest type.

View File

@ -0,0 +1,8 @@
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis
; PR4066
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i386-apple-darwin9"
%struct.i2c_device_id = type { }
@w83l785ts_id = internal constant [0 x %struct.i2c_device_id] zeroinitializer, align 1 ; <[0 x %struct.i2c_device_id]*> [#uses=1]
@__mod_i2c_device_table = alias getelementptr ([0 x %struct.i2c_device_id]* @w83l785ts_id, i32 0, i32 0) ; <%struct.i2c_device_id*> [#uses=0]