forked from OSchip/llvm-project
reject codegen of __thread variables as unimplemented, rdar://6775265
llvm-svn: 68755
This commit is contained in:
parent
428f71623b
commit
5286e774ee
|
@ -63,6 +63,10 @@ void CodeGenFunction::EmitBlockVarDecl(const VarDecl &D) {
|
|||
if (D.getAttr<AsmLabelAttr>())
|
||||
CGM.ErrorUnsupported(&D, "__asm__");
|
||||
|
||||
// We don't support __thread yet.
|
||||
if (D.isThreadSpecified())
|
||||
CGM.ErrorUnsupported(&D, "__thread variable", true);
|
||||
|
||||
switch (D.getStorageClass()) {
|
||||
case VarDecl::Static:
|
||||
return EmitStaticBlockVarDecl(D);
|
||||
|
|
|
@ -231,11 +231,10 @@ void CodeGenFunction::GenerateCode(const FunctionDecl *FD,
|
|||
EmitStmt(FD->getBody());
|
||||
|
||||
const CompoundStmt *S = dyn_cast<CompoundStmt>(FD->getBody());
|
||||
if (S) {
|
||||
if (S)
|
||||
FinishFunction(S->getRBracLoc());
|
||||
} else {
|
||||
else
|
||||
FinishFunction();
|
||||
}
|
||||
|
||||
// Destroy the 'this' declaration.
|
||||
if (CXXThisDecl)
|
||||
|
|
|
@ -614,6 +614,10 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMGlobal(const char *MangledName,
|
|||
return llvm::ConstantExpr::getBitCast(Entry, Ty);
|
||||
}
|
||||
|
||||
// We don't support __thread yet.
|
||||
if (D && D->isThreadSpecified())
|
||||
ErrorUnsupported(D, "thread local ('__thread') variable", true);
|
||||
|
||||
// This is the first use or definition of a mangled name. If there is a
|
||||
// deferred decl with this name, remember that we need to emit it at the end
|
||||
// of the file.
|
||||
|
@ -680,7 +684,7 @@ CodeGenModule::CreateRuntimeVariable(const llvm::Type *Ty,
|
|||
void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) {
|
||||
llvm::Constant *Init = 0;
|
||||
QualType ASTTy = D->getType();
|
||||
|
||||
|
||||
if (D->getInit() == 0) {
|
||||
// This is a tentative definition; tentative definitions are
|
||||
// implicitly initialized with { 0 }
|
||||
|
|
Loading…
Reference in New Issue