]> granicus.if.org Git - clang/commit
[CUDA] Mark device functions as nounwind.
authorJustin Lebar <jlebar@google.com>
Tue, 4 Oct 2016 23:41:49 +0000 (23:41 +0000)
committerJustin Lebar <jlebar@google.com>
Tue, 4 Oct 2016 23:41:49 +0000 (23:41 +0000)
commite506eb44f35c2080e987d6dafcb5b69af3126227
tree6f93c30a90eba177ed1861f6f33f69e07de44bf4
parent8678918d321e6439b535d2c7f4613498b08797f6
[CUDA] Mark device functions as nounwind.

Summary:
This prevents clang from emitting 'invoke's and catch statements.

Things previously mostly worked thanks to TryToMarkNoThrow() in
CodeGenFunction.  But this is not a proper IPO, and it doesn't properly
handle cases like mutual recursion.

Fixes bug 30593.

Reviewers: tra

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25166

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283272 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGCall.cpp
lib/CodeGen/CGException.cpp
test/CodeGenCUDA/convergent.cu
test/CodeGenCUDA/device-var-init.cu
test/CodeGenCUDA/nothrow.cu [new file with mode: 0644]