r134634 causes a failure on MultiSource/Benchmarks/Olden/bh with TEST=nightly,

so roll it out.

llvm-svn: 134638
This commit is contained in:
Cameron Zwarich
2011-07-07 21:03:28 +00:00
parent 9f6f6f6ecc
commit be652e6a24
5 changed files with 3 additions and 51 deletions

View File

@@ -597,7 +597,7 @@ void CodeGenModule::EmitLLVMUsed() {
void CodeGenModule::EmitDeferred() {
// Emit code for any potentially referenced deferred decls. Since a
// previously unused static decl may become used during the generation of code
// for a static function, iterate until no changes are made.
// for a static function, iterate until no changes are made.
while (!DeferredDeclsToEmit.empty() || !DeferredVTables.empty()) {
if (!DeferredVTables.empty()) {
@@ -740,21 +740,8 @@ void CodeGenModule::EmitGlobal(GlobalDecl GD) {
}
// Forward declarations are emitted lazily on first use.
if (!FD->doesThisDeclarationHaveABody()) {
if (!FD->doesDeclarationForceExternallyVisibleDefinition())
return;
const FunctionDecl *InlineDefinition = 0;
FD->getBody(InlineDefinition);
llvm::StringRef MangledName = getMangledName(GD);
llvm::StringMap<GlobalDecl>::iterator DDI =
DeferredDecls.find(MangledName);
if (DDI != DeferredDecls.end())
DeferredDecls.erase(DDI);
EmitGlobalDefinition(InlineDefinition);
if (!FD->doesThisDeclarationHaveABody())
return;
}
} else {
const VarDecl *VD = cast<VarDecl>(Global);
assert(VD->isFileVarDecl() && "Cannot emit local var decl as global.");