mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-14 20:03:14 +01:00
[svn r78] Removed the useless pragmas
This commit is contained in:
37
dmd/attrib.c
37
dmd/attrib.c
@@ -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()) {
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
enum
|
||||
{
|
||||
LLVMnone,
|
||||
LLVMnull,
|
||||
LLVMmangle,
|
||||
LLVMintrinsic,
|
||||
LLVMbind,
|
||||
LLVMva_arg,
|
||||
LLVMva_start,
|
||||
LLVMva_intrinsic,
|
||||
|
||||
23
gen/toobj.c
23
gen/toobj.c
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user