Skip to content

Commit

Permalink
merge D2 pull #1039
Browse files Browse the repository at this point in the history
  • Loading branch information
WalterBright committed Jul 8, 2012
1 parent d119dd6 commit ee7cc64
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 33 deletions.
52 changes: 24 additions & 28 deletions src/module.c
Expand Up @@ -20,7 +20,7 @@
#include <malloc.h>
#endif

#if IN_GCC
#ifdef IN_GCC
#include "gdc_alloca.h"
#endif

Expand Down Expand Up @@ -266,7 +266,7 @@ Module *Module::load(Loc loc, Identifiers *packages, Identifier *ident)
OutBuffer buf;

for (size_t i = 0; i < packages->dim; i++)
{ Identifier *pid = packages->tdata()[i];
{ Identifier *pid = (*packages)[i];

buf.writestring(pid->toChars());
#if _WIN32
Expand Down Expand Up @@ -327,7 +327,7 @@ Module *Module::load(Loc loc, Identifiers *packages, Identifier *ident)
if (packages)
{
for (size_t i = 0; i < packages->dim; i++)
{ Identifier *pid = packages->tdata()[i];
{ Identifier *pid = (*packages)[i];
printf("%s.", pid->toChars());
}
}
Expand Down Expand Up @@ -358,8 +358,8 @@ bool Module::read(Loc loc)
{
for (size_t i = 0; i < global.path->dim; i++)
{
char *p = global.path->tdata()[i];
fprintf(stdmsg, "import path[%zd] = %s\n", i, p);
char *p = (*global.path)[i];
fprintf(stdmsg, "import path[%llu] = %s\n", (ulonglong)i, p);
}
}
else
Expand Down Expand Up @@ -405,11 +405,7 @@ inline unsigned readlongBE(unsigned *p)
(((unsigned char *)p)[0] << 24);
}

#if IN_GCC
void Module::parse(bool dump_source)
#else
void Module::parse()
#endif
{
//printf("Module::parse()\n");

Expand Down Expand Up @@ -582,7 +578,7 @@ void Module::parse()

#ifdef IN_GCC
// dump utf-8 encoded source
if (dump_source)
if (global.params.dump_source)
{ // %% srcname could contain a path ...
d_gcc_dump_source(srcname, "utf-8", buf, buflen);
}
Expand All @@ -608,7 +604,7 @@ void Module::parse()
buflen = dbuf->offset;
#ifdef IN_GCC
// dump extracted source
if (dump_source)
if (global.params.dump_source)
d_gcc_dump_source(srcname, "d.utf-8", buf, buflen);
#endif
}
Expand Down Expand Up @@ -706,7 +702,7 @@ void Module::importAll(Scope *prevsc)
symtab = new DsymbolTable();
for (size_t i = 0; i < members->dim; i++)
{
Dsymbol *s = members->tdata()[i];
Dsymbol *s = (*members)[i];
s->addMember(NULL, sc->scopesym, 1);
}
}
Expand All @@ -719,13 +715,13 @@ void Module::importAll(Scope *prevsc)
*/
setScope(sc); // remember module scope for semantic
for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s = members->tdata()[i];
{ Dsymbol *s = (*members)[i];
s->setScope(sc);
}

for (size_t i = 0; i < members->dim; i++)
{
Dsymbol *s = members->tdata()[i];
Dsymbol *s = (*members)[i];
s->importAll(sc);
}

Expand Down Expand Up @@ -780,15 +776,15 @@ void Module::semantic()

// Do semantic() on members that don't depend on others
for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s = members->tdata()[i];
{ Dsymbol *s = (*members)[i];

//printf("\tModule('%s'): '%s'.semantic0()\n", toChars(), s->toChars());
s->semantic0(sc);
}

// Pass 1 semantic routines: do public side of the definition
for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s = members->tdata()[i];
{ Dsymbol *s = (*members)[i];

//printf("\tModule('%s'): '%s'.semantic()\n", toChars(), s->toChars());
s->semantic(sc);
Expand All @@ -809,7 +805,7 @@ void Module::semantic2()
{
for (size_t i = 0; i < deferred.dim; i++)
{
Dsymbol *sd = deferred.tdata()[i];
Dsymbol *sd = deferred[i];

sd->error("unable to resolve forward reference in definition");
}
Expand All @@ -831,7 +827,7 @@ void Module::semantic2()
for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s;

s = members->tdata()[i];
s = (*members)[i];
s->semantic2(sc);
}

Expand Down Expand Up @@ -859,7 +855,7 @@ void Module::semantic3()
for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s;

s = members->tdata()[i];
s = (*members)[i];
//printf("Module %s: %s.semantic3()\n", toChars(), s->toChars());
s->semantic3(sc);
}
Expand All @@ -882,7 +878,7 @@ void Module::inlineScan()
//printf("Module = %p\n", sc.scopesym);

for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s = members->tdata()[i];
{ Dsymbol *s = (*members)[i];
//if (global.params.verbose)
//printf("inline scan symbol %s\n", s->toChars());

Expand All @@ -905,7 +901,7 @@ void Module::gensymfile()
buf.writenl();

for (size_t i = 0; i < members->dim; i++)
{ Dsymbol *s = members->tdata()[i];
{ Dsymbol *s = (*members)[i];

s->toCBuffer(&buf, &hgs);
}
Expand Down Expand Up @@ -966,7 +962,7 @@ Dsymbol *Module::symtabInsert(Dsymbol *s)
void Module::clearCache()
{
for (size_t i = 0; i < amodules.dim; i++)
{ Module *m = amodules.tdata()[i];
{ Module *m = amodules[i];
m->searchCacheIdent = NULL;
}
}
Expand All @@ -980,7 +976,7 @@ void Module::addDeferredSemantic(Dsymbol *s)
// Don't add it if it is already there
for (size_t i = 0; i < deferred.dim; i++)
{
Dsymbol *sd = deferred.tdata()[i];
Dsymbol *sd = deferred[i];

if (sd == s)
return;
Expand Down Expand Up @@ -1058,7 +1054,7 @@ int Module::imports(Module *m)
}
#endif
for (size_t i = 0; i < aimports.dim; i++)
{ Module *mi = aimports.tdata()[i];
{ Module *mi = aimports[i];
if (mi == m)
return TRUE;
if (!mi->insearch)
Expand All @@ -1082,15 +1078,15 @@ int Module::selfImports()
if (!selfimports)
{
for (size_t i = 0; i < amodules.dim; i++)
{ Module *mi = amodules.tdata()[i];
{ Module *mi = amodules[i];
//printf("\t[%d] %s\n", i, mi->toChars());
mi->insearch = 0;
}

selfimports = imports(this) + 1;

for (size_t i = 0; i < amodules.dim; i++)
{ Module *mi = amodules.tdata()[i];
{ Module *mi = amodules[i];
//printf("\t[%d] %s\n", i, mi->toChars());
mi->insearch = 0;
}
Expand All @@ -1114,7 +1110,7 @@ char *ModuleDeclaration::toChars()
if (packages && packages->dim)
{
for (size_t i = 0; i < packages->dim; i++)
{ Identifier *pid = packages->tdata()[i];
{ Identifier *pid = (*packages)[i];

buf.writestring(pid->toChars());
buf.writeByte('.');
Expand Down Expand Up @@ -1151,7 +1147,7 @@ DsymbolTable *Package::resolve(Identifiers *packages, Dsymbol **pparent, Package
if (packages)
{
for (size_t i = 0; i < packages->dim; i++)
{ Identifier *pid = packages->tdata()[i];
{ Identifier *pid = (*packages)[i];
Dsymbol *p;

p = dst->lookup(pid);
Expand Down
6 changes: 1 addition & 5 deletions src/module.h
Expand Up @@ -27,7 +27,7 @@ struct VarDeclaration;
struct Library;

// Back end
#if IN_GCC
#ifdef IN_GCC
union tree_node; typedef union tree_node elem;
#else
struct elem;
Expand Down Expand Up @@ -118,11 +118,7 @@ struct Module : Package
const char *kind();
void setDocfile(); // set docfile member
bool read(Loc loc); // read file, returns 'true' if succeed, 'false' otherwise.
#if IN_GCC
void parse(bool dump_source = false); // syntactic parse
#else
void parse(); // syntactic parse
#endif
void importAll(Scope *sc);
void semantic(); // semantic analysis
void semantic2(); // pass 2 semantic analysis
Expand Down

0 comments on commit ee7cc64

Please sign in to comment.