diff --git a/src/coreclr/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp index aaafa258a5be10..5096bbdda453fa 100644 --- a/src/coreclr/ilasm/assembler.cpp +++ b/src/coreclr/ilasm/assembler.cpp @@ -386,9 +386,7 @@ DWORD Assembler::CheckClassFlagsIfNested(Class* pEncloser, DWORD attr) DWORD wasAttr = attr; if(pEncloser && (!IsTdNested(attr))) { - if(OnErrGo) - report->error("Nested class has non-nested visibility (0x%08X)\n",attr); - else + if(!OnErrGo) { attr &= ~tdVisibilityMask; attr |= (IsTdPublic(wasAttr) ? tdNestedPublic : tdNestedPrivate); @@ -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); @@ -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; @@ -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); @@ -713,8 +707,7 @@ 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); @@ -722,8 +715,7 @@ void Assembler::StartMethod(_In_ __nullterminated char* name, BinStr* sig, CorMe } 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); @@ -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); diff --git a/src/coreclr/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp index 6422ed744be361..f624555da12e83 100644 --- a/src/coreclr/ilasm/grammar_after.cpp +++ b/src/coreclr/ilasm/grammar_after.cpp @@ -1807,15 +1807,16 @@ void PrintANSILine(FILE* pF, _In_ __nullterminated char* sz) /**************************************************************************/ void AsmParse::error(const char* fmt, ...) { + 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; 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); }