Fix unnamed structs
This commit is contained in:
parent
5055635d3d
commit
ef6598e94b
|
@ -125,7 +125,7 @@ float exp(float f)
|
||||||
|
|
||||||
int fi = (int)ff;
|
int fi = (int)ff;
|
||||||
|
|
||||||
union xx {
|
union {
|
||||||
float f;
|
float f;
|
||||||
int i[2];
|
int i[2];
|
||||||
} x;
|
} x;
|
||||||
|
@ -155,7 +155,7 @@ float log(float f)
|
||||||
if (f == 0.0)
|
if (f == 0.0)
|
||||||
return 1.0;
|
return 1.0;
|
||||||
|
|
||||||
union xx {
|
union {
|
||||||
float f;
|
float f;
|
||||||
int i[2];
|
int i[2];
|
||||||
} x;
|
} x;
|
||||||
|
@ -193,7 +193,7 @@ float sqrt(float f)
|
||||||
{
|
{
|
||||||
if (f >= 0)
|
if (f >= 0)
|
||||||
{
|
{
|
||||||
union xx {
|
union {
|
||||||
float f;
|
float f;
|
||||||
int i[2];
|
int i[2];
|
||||||
} x;
|
} x;
|
||||||
|
@ -216,7 +216,7 @@ float sqrt(float f)
|
||||||
|
|
||||||
bool isinf(float f)
|
bool isinf(float f)
|
||||||
{
|
{
|
||||||
union xx {
|
union {
|
||||||
float f;
|
float f;
|
||||||
unsigned i[2];
|
unsigned i[2];
|
||||||
} x;
|
} x;
|
||||||
|
@ -228,7 +228,7 @@ bool isinf(float f)
|
||||||
|
|
||||||
bool isfinite(float f)
|
bool isfinite(float f)
|
||||||
{
|
{
|
||||||
union xx {
|
union {
|
||||||
float f;
|
float f;
|
||||||
unsigned i[2];
|
unsigned i[2];
|
||||||
} x;
|
} x;
|
||||||
|
|
|
@ -1301,11 +1301,17 @@ const Ident* Declaration::MangleIdent(void)
|
||||||
}
|
}
|
||||||
else if (mType == DT_TYPE_STRUCT)
|
else if (mType == DT_TYPE_STRUCT)
|
||||||
{
|
{
|
||||||
mMangleIdent = mQualIdent->PreMangle("struct ");
|
if (mQualIdent)
|
||||||
|
mMangleIdent = mQualIdent->PreMangle("struct ");
|
||||||
|
else
|
||||||
|
mMangleIdent = Ident::Unique("struct");
|
||||||
}
|
}
|
||||||
else if (mType == DT_TYPE_ENUM)
|
else if (mType == DT_TYPE_ENUM)
|
||||||
{
|
{
|
||||||
mMangleIdent = mQualIdent->PreMangle("enum ");
|
if (mQualIdent)
|
||||||
|
mMangleIdent = mQualIdent->PreMangle("enum ");
|
||||||
|
else
|
||||||
|
mMangleIdent = Ident::Unique("enum");
|
||||||
}
|
}
|
||||||
else if (mType == DT_TYPE_VOID)
|
else if (mType == DT_TYPE_VOID)
|
||||||
{
|
{
|
||||||
|
|
|
@ -174,8 +174,10 @@ Declaration* Parser::ParseStructDeclaration(uint64 flags, DecType dt, Declaratio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if ((mCompilerOptions & COPT_CPLUSPLUS) && mScope->mLevel < SLEVEL_CLASS)
|
||||||
mErrors->Error(mScanner->mLocation, EERR_UNIMPLEMENTED, "Unnamed structs are not implemented");
|
{
|
||||||
|
mErrors->Error(mScanner->mLocation, EERR_INVALID_IDENTIFIER, "Invalid unnamed struct on global level");
|
||||||
|
}
|
||||||
|
|
||||||
if (!dec->mIdent || !dec->mScope)
|
if (!dec->mIdent || !dec->mScope)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue