]> granicus.if.org Git - clang/commit
MS ABI: Emit an error during IRgen on C++ exception handling
authorReid Kleckner <reid@kleckner.net>
Mon, 5 May 2014 21:12:12 +0000 (21:12 +0000)
committerReid Kleckner <reid@kleckner.net>
Mon, 5 May 2014 21:12:12 +0000 (21:12 +0000)
commit192d781cd5d580756692f997bc5592f8a5962f7c
tree6b8317c4376cbb56b6992e55ed893b6d363172f2
parentb4587293a53a4da4553a1a28ca460d0c84c6e5df
MS ABI: Emit an error during IRgen on C++ exception handling

Currently, users get error messages about RTTI descriptor mangling with
no useful source location.  This addresses that.

Another approach would be to disable C++ exceptions by default in the
driver when using the Microsoft C++ ABI.  However, this makes it
impossible to parse system headers that use exception handling
constructs.  By delaying the error to IRgen, we can figure out if we
actually need to emit code for this construct.  Additionally, users who
are only interested in building refactoring tools on Windows still get a
correct AST without having to add flags.  Finally, this is consistent
with what we do for SEH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207999 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGException.cpp
test/CodeGenCXX/microsoft-abi-try-throw.cpp [new file with mode: 0644]