[svn r78] Removed the useless pragmas

This commit is contained in:
Tomas Lindquist Olsen
2007-10-31 04:05:38 +01:00
parent 9804fe0fa3
commit 21e50af2c0
3 changed files with 2 additions and 61 deletions

View File

@@ -863,18 +863,6 @@ void PragmaDeclaration::semantic(Scope *sc)
llvm_internal = LLVMintrinsic;
assert(args->dim == 2);
}
else if (strcmp(str,"null")==0) {
llvm_internal = LLVMnull;
assert(args->dim == 1);
}
else if (strcmp(str,"mangle")==0) {
llvm_internal = LLVMmangle;
assert(args->dim == 2);
}
else if (strcmp(str,"bind")==0) {
llvm_internal = LLVMbind;
assert(args->dim == 2);
}
else if (strcmp(str,"va_start")==0) {
llvm_internal = LLVMva_start;
assert(args->dim == 1);
@@ -902,8 +890,6 @@ void PragmaDeclaration::semantic(Scope *sc)
switch (llvm_internal)
{
case LLVMintrinsic:
case LLVMmangle:
case LLVMbind:
case LLVMva_intrinsic:
e = (Expression *)args->data[1];
e = e->semantic(sc);
@@ -915,7 +901,6 @@ void PragmaDeclaration::semantic(Scope *sc)
error("2nd argument must be a string");
break;
case LLVMnull:
case LLVMva_arg:
case LLVMva_start:
case LLVMnotypeinfo:
@@ -944,7 +929,6 @@ void PragmaDeclaration::semantic(Scope *sc)
switch(llvm_internal)
{
case LLVMintrinsic:
case LLVMmangle:
case LLVMva_intrinsic:
if (FuncDeclaration* fd = s->isFuncDeclaration()) {
fd->llvmInternal = llvm_internal;
@@ -956,27 +940,6 @@ void PragmaDeclaration::semantic(Scope *sc)
}
break;
case LLVMnull:
if (StaticCtorDeclaration* sd = s->isStaticCtorDeclaration()) {
sd->llvmInternal = llvm_internal;
}
else {
error("may only be used on static constructors");
assert(0);
}
break;
case LLVMbind:
if (VarDeclaration* vd = s->isVarDeclaration()) {
vd->llvmInternal = llvm_internal;
vd->llvmInternal1 = llvm_str1;
}
else {
error("may only be used on var declarations");
assert(0);
}
break;
case LLVMva_start:
case LLVMva_arg:
if (TemplateDeclaration* td = s->isTemplateDeclaration()) {

View File

@@ -1,10 +1,7 @@
enum
{
LLVMnone,
LLVMnull,
LLVMmangle,
LLVMintrinsic,
LLVMbind,
LLVMva_arg,
LLVMva_start,
LLVMva_intrinsic,

View File

@@ -592,14 +592,6 @@ void VarDeclaration::toObjFile()
LOG_SCOPE;
llvm::Module* M = gIR->module;
// handle bind pragma
if (llvmInternal == LLVMbind) {
Logger::println("var is bound: %s", llvmInternal1);
llvmValue = M->getGlobalVariable(llvmInternal1);
assert(llvmValue);
return;
}
// global variable or magic
if (isDataseg() || parent->isModule())
{
@@ -796,7 +788,6 @@ void FuncDeclaration::toObjFile()
{
llvmDModule = gIR->dmodule;
bool allow_fbody = true;
// handle static constructor / destructor
if (isStaticCtorDeclaration() || isStaticDtorDeclaration()) {
const llvm::ArrayType* sctor_type = llvm::ArrayType::get(llvm::PointerType::get(functype),1);
@@ -805,17 +796,7 @@ void FuncDeclaration::toObjFile()
llvm::Constant* sctor_func = llvm::cast<llvm::Constant>(llvmValue);
//Logger::cout() << "static ctor func: " << *sctor_func << '\n';
llvm::Constant* sctor_init = 0;
if (llvmInternal == LLVMnull)
{
llvm::Constant* sctor_init_null = llvm::Constant::getNullValue(sctor_func->getType());
sctor_init = llvm::ConstantArray::get(sctor_type,&sctor_init_null,1);
allow_fbody = false;
}
else
{
sctor_init = llvm::ConstantArray::get(sctor_type,&sctor_func,1);
}
llvm::Constant* sctor_init = llvm::ConstantArray::get(sctor_type,&sctor_func,1);
//Logger::cout() << "static ctor init: " << *sctor_init << '\n';
@@ -825,7 +806,7 @@ void FuncDeclaration::toObjFile()
}
// function definition
if (allow_fbody && fbody != 0)
if (fbody != 0)
{
gIR->functions.push_back(IRFunction(this));
gIR->func().func = func;