On Mon, May 19, 2014 at 6:59 PM, Alp Toker <a...@nuanti.com> wrote: > > On 19/05/2014 23:31, Richard Smith wrote: >> >> On Mon, May 19, 2014 at 1:11 PM, Jordan Rose <jordan_r...@apple.com >> <mailto:jordan_r...@apple.com>> wrote: >> >> >> >> > On May 19, 2014, at 12:30, Aaron Ballman <aa...@aaronballman.com >> <mailto:aa...@aaronballman.com>> wrote: >> > >> > I did a little bit more digging into the issue, and the problem >> is in >> > ARCMT.cpp:318, whic has the code: >> > >> > Diags->setDiagnosticMapping(diag::err_arcmt_nsalloc_realloc, >> > NoNSAllocReallocError ? >> diag::MAP_WARNING >> > : diag::MAP_ERROR, >> > SourceLocation()); >> > >> > You cannot map an error diagnostic to be a warning. >> > DiagnosticsEngine::setDiagnosticMapping has this assert, which is >> > triggered by that code: >> > >> > assert((Diags->isBuiltinWarningOrExtension(Diag) || >> > (Map == diag::MAP_FATAL || Map == diag::MAP_ERROR)) && >> > "Cannot map errors into warnings!"); >> > >> > I'm not familiar enough with ARCMT to understand what is >> required for >> > the correct fix. >> >> If the current behavior is correct, the right way to declare the >> diagnostic in the .td file is "Warning<...>, DefaultError". >> >> >> ... and in that case, its name should not begin err_. > > > Turns out the test was always disabled because multiple SourceManager > instances were crashing VerifyDiagnosticConsumer. > > So I've added a TODO to look into that, grepified the test and provided > useful behaviour for both -no-ns-alloc-error and -Wno-error=arcmt-ns-alloc > to resolve the issue. > > r209172.
Thanks, Alp! ~Aaron _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits