[svn r56] Initial support for TypeInfo.

Enums not work.
Several other bugfixes.
This commit is contained in:
Tomas Lindquist Olsen
2007-10-23 05:55:12 +02:00
parent 2c99df8deb
commit 5fee3fc8b7
75 changed files with 1091 additions and 2923 deletions

View File

@@ -38,8 +38,8 @@ long __cdecl __ehfilter(LPEXCEPTION_POINTERS ep);
#include "id.h"
#include "cond.h"
#include "expression.h"
#include "lexer.h"
#include "lexer.h"
#include "gen/logger.h"
void getenv_setargv(const char *envvar, int *pargc, char** *pargv);
@@ -177,6 +177,7 @@ Usage:\n\
-debug=ident compile in debug code identified by ident\n\
-debuglib=name set symbolic debug library to name\n\
-defaultlib=name set default library to name\n\
-dis disassemble module after compiling\n\
-g add symbolic debug info\n\
-gc add symbolic debug info, pretend to be C\n\
-H generate 'header' file\n\
@@ -204,7 +205,7 @@ Usage:\n\
-release compile release version\n\
-run srcfile args... run resulting program, passing args\n\
-unittest compile in unit tests\n\
-v verbose\n\
-v verbose\n\
-vv very verbose (does not include -v)\n\
-v1 D language version 1\n\
-version=level compile in version code >= level\n\
@@ -229,7 +230,7 @@ int main(int argc, char *argv[])
int argcstart = argc;
char* tt_arch = 0;
char* tt_os = 0;
char* data_layout = 0;
char* data_layout = 0;
bool very_verbose = false;
// Check for malformed input
@@ -355,10 +356,10 @@ int main(int argc, char *argv[])
else if (strcmp(p + 1, "profile") == 0)
global.params.trace = 1;
else if (strcmp(p + 1, "v") == 0)
global.params.verbose = 1;
global.params.verbose = 1;
else if (strcmp(p + 1, "vv") == 0) {
Logger::enable();
very_verbose = true;
Logger::enable();
very_verbose = true;
}
else if (strcmp(p + 1, "v1") == 0)
global.params.Dversion = 1;
@@ -384,6 +385,8 @@ int main(int argc, char *argv[])
global.params.noruntime = 1;
else if (strcmp(p + 1, "noverify") == 0)
global.params.novalidate = 1;
else if (strcmp(p + 1, "dis") == 0)
global.params.disassemble = 1;
else if (p[1] == 'o')
{
switch (p[2])
@@ -661,7 +664,7 @@ int main(int argc, char *argv[])
fatal();
}
else {
global.params.llvmArch = const_cast<char*>(e->Name);
global.params.llvmArch = const_cast<char*>(e->Name);
if (global.params.verbose || very_verbose)
printf("Default target found: %s\n", global.params.llvmArch);
}

View File

@@ -128,6 +128,7 @@ struct Param
char *tt_arch;
char *tt_os;
char *data_layout;
char disassemble;
};
struct Global

View File

@@ -157,6 +157,7 @@ Module::Module(char *filename, Identifier *ident, int doDocComment, int doHdrGen
objfile = new File(objfilename);
bcfile = new File(bcfilename);
llfile = new File(llfilename);
symfile = new File(symfilename);
}

View File

@@ -61,6 +61,7 @@ struct Module : Package
File *srcfile; // input source file
File *objfile; // output .obj file
File *bcfile; // output .bc file
File *llfile; // output .ll file
File *hdrfile; // 'header' file
File *symfile; // output symbol file
File *docfile; // output documentation file