diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2020-04-22 17:17:59 -0400 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2020-04-27 12:14:51 -0400 |
commit | 5c03beefa720bddb3e3f53c595a76bce7ad50f37 (patch) | |
tree | ebf85c5572bb16dfe1427d4d77fcc482a437a430 /clang/lib/CodeGen/CodeGenAction.cpp | |
parent | 8a4013ed38c6eee730dd6781a7c3dfd2b39e7e80 (diff) | |
download | llvm-5c03beefa720bddb3e3f53c595a76bce7ad50f37.zip llvm-5c03beefa720bddb3e3f53c595a76bce7ad50f37.tar.gz llvm-5c03beefa720bddb3e3f53c595a76bce7ad50f37.tar.bz2 |
clang: Allow backend unsupported warnings
Currently this asserts on anything other than errors. In one
workaround scenario, AMDGPU emits DiagnosticInfoUnsupported as a
warning for functions that can't be correctly codegened, but should
never be executed.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenAction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenAction.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp index 81946b1..b8ffe34 100644 --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -633,8 +633,9 @@ const FullSourceLoc BackendConsumer::getBestLocationFromDebugLoc( void BackendConsumer::UnsupportedDiagHandler( const llvm::DiagnosticInfoUnsupported &D) { - // We only support errors. - assert(D.getSeverity() == llvm::DS_Error); + // We only support warnings or errors. + assert(D.getSeverity() == llvm::DS_Error || + D.getSeverity() == llvm::DS_Warning); StringRef Filename; unsigned Line, Column; @@ -652,7 +653,11 @@ void BackendConsumer::UnsupportedDiagHandler( DiagnosticPrinterRawOStream DP(MsgStream); D.print(DP); } - Diags.Report(Loc, diag::err_fe_backend_unsupported) << MsgStream.str(); + + auto DiagType = D.getSeverity() == llvm::DS_Error + ? diag::err_fe_backend_unsupported + : diag::warn_fe_backend_unsupported; + Diags.Report(Loc, DiagType) << MsgStream.str(); if (BadDebugInfo) // If we were not able to translate the file:line:col information |