Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 7 additions & 16 deletions src/coreclr/ilasm/assembler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,9 +386,7 @@ DWORD Assembler::CheckClassFlagsIfNested(Class* pEncloser, DWORD attr)
DWORD wasAttr = attr;
if(pEncloser && (!IsTdNested(attr)))
{
if(OnErrGo)
Comment thread
jkotas marked this conversation as resolved.
report->error("Nested class has non-nested visibility (0x%08X)\n",attr);
else
if(!OnErrGo)
{
attr &= ~tdVisibilityMask;
attr |= (IsTdPublic(wasAttr) ? tdNestedPublic : tdNestedPrivate);
Expand All @@ -397,9 +395,7 @@ DWORD Assembler::CheckClassFlagsIfNested(Class* pEncloser, DWORD attr)
}
else if((pEncloser==NULL) && IsTdNested(attr))
{
if(OnErrGo)
report->error("Non-nested class has nested visibility (0x%08X)\n",attr);
else
if(!OnErrGo)
{
attr &= ~tdVisibilityMask;
attr |= (IsTdNestedPublic(wasAttr) ? tdPublic : tdNotPublic);
Expand Down Expand Up @@ -533,8 +529,7 @@ void Assembler::AddClass()
{
if(!IsTdSealed(attr))
{
if(OnErrGo) report->error("Non-sealed value class\n");
else
if(!OnErrGo)
{
report->warn("Non-sealed value class, made sealed\n");
m_pCurClass->m_Attr |= tdSealed;
Expand Down Expand Up @@ -626,8 +621,7 @@ void Assembler::StartMethod(_In_ __nullterminated char* name, BinStr* sig, CorMe
*(sig->ptr()) |= IMAGE_CEE_CS_CALLCONV_HASTHIS;
else if(*(sig->ptr()) & (IMAGE_CEE_CS_CALLCONV_HASTHIS | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS))
{
if(OnErrGo) report->error("Method '%s' -- both static and instance\n", name);
else
if(!OnErrGo)
{
report->warn("Method '%s' -- both static and instance, set to static\n", name);
*(sig->ptr()) &= ~(IMAGE_CEE_CS_CALLCONV_HASTHIS | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS);
Expand Down Expand Up @@ -713,17 +707,15 @@ void Assembler::StartMethod(_In_ __nullterminated char* name, BinStr* sig, CorMe
{
if(IsMdAbstract(flags))
{
if(OnErrGo) report->error("Global method '%s' can't be abstract\n",name);
else
if(!OnErrGo)
{
report->warn("Global method '%s' can't be abstract, flag removed\n",name);
flags = (CorMethodAttr)(((int) flags) &~mdAbstract);
}
}
if(!IsMdStatic(flags))
{
if(OnErrGo) report->error("Non-static global method '%s'\n",name);
else
if(!OnErrGo)
{
report->warn("Non-static global method '%s', made static\n",name);
flags = (CorMethodAttr)(flags | mdStatic);
Expand Down Expand Up @@ -842,8 +834,7 @@ void Assembler::AddField(__inout_z __inout char* name, BinStr* sig, CorFieldAttr
}
if(!IsFdStatic(flags))
{
if(OnErrGo) report->error("Non-static global field\n");
else
if(!OnErrGo)
{
report->warn("Non-static global field, made static\n");
flags = (CorFieldAttr)(flags | fdStatic);
Expand Down
5 changes: 3 additions & 2 deletions src/coreclr/ilasm/grammar_after.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1807,15 +1807,16 @@ void PrintANSILine(FILE* pF, _In_ __nullterminated char* sz)
/**************************************************************************/
void AsmParse::error(const char* fmt, ...)
{
Comment thread
jkotas marked this conversation as resolved.
if(assem->OnErrGo) return;
char *sz = (char*)(&wzUniBuf[(dwUniBuf >> 1)]);
char *psz=&sz[0];
FILE* pF = ((!assem->m_fReportProgress)&&(assem->OnErrGo)) ? stdout : stderr;
FILE* pF = stderr;
success = false;
Comment thread
jkotas marked this conversation as resolved.
va_list args;
va_start(args, fmt);

if((penv) && (penv->in)) psz+=sprintf_s(psz, (dwUniBuf >> 1), "%s(%d) : ", penv->in->name(), penv->curLine);
psz+=sprintf_s(psz, (dwUniBuf >> 1), assem->OnErrGo ? "warning : " : "error : ");
psz+=sprintf_s(psz, (dwUniBuf >> 1), "error : ");
_vsnprintf_s(psz, (dwUniBuf >> 1),(dwUniBuf >> 1)-strlen(sz)-1, fmt, args);
PrintANSILine(pF,sz);
}
Expand Down
Loading