mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-15 16:07:49 +00:00
Fix bug: test/Regression/Assembler/2002-08-15-UnresolvedGlobalReference.ll
llvm-svn: 3350
This commit is contained in:
parent
ea7257ec94
commit
971fa225af
@ -919,8 +919,21 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr
|
||||
if (Ty == 0)
|
||||
ThrowException("Global const reference must be a pointer type!");
|
||||
|
||||
// ConstExprs can exist in the body of a function, thus creating
|
||||
// ConstantPointerRefs whenever they refer to a variable. Because we are in
|
||||
// the context of a function, getValNonImprovising will search the functions
|
||||
// symbol table instead of the module symbol table for the global symbol,
|
||||
// which throws things all off. To get around this, we just tell
|
||||
// getValNonImprovising that we are at global scope here.
|
||||
//
|
||||
Function *SavedCurFn = CurMeth.CurrentFunction;
|
||||
CurMeth.CurrentFunction = 0;
|
||||
|
||||
Value *V = getValNonImprovising(Ty, $2);
|
||||
|
||||
CurMeth.CurrentFunction = SavedCurFn;
|
||||
|
||||
|
||||
// If this is an initializer for a constant pointer, which is referencing a
|
||||
// (currently) undefined variable, create a stub now that shall be replaced
|
||||
// in the future with the right type of variable.
|
||||
@ -960,7 +973,6 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr
|
||||
};
|
||||
|
||||
|
||||
// FIXME: ConstExpr::get never return null! Do checking here in the parser.
|
||||
ConstExpr: Types CAST ConstVal {
|
||||
$$ = ConstantExpr::getCast($3, $1->get());
|
||||
delete $1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user