summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2012-02-01 19:42:45 +0000
committerHoward Hinnant <hhinnant@apple.com>2012-02-01 19:42:45 +0000
commita21f8c2acf8852b15a28256fe6424ac295d770b0 (patch)
tree05c6b69b396053794dbaa26f72926fa1707221dc /libcxxabi/src
parentccfa90a5fe0e7b919ff0368a8d59c763733905f3 (diff)
downloadbcm5719-llvm-a21f8c2acf8852b15a28256fe6424ac295d770b0.tar.gz
bcm5719-llvm-a21f8c2acf8852b15a28256fe6424ac295d770b0.zip
Quash TODO regarding catch by function type. Add tests to back it up.
llvm-svn: 149530
Diffstat (limited to 'libcxxabi/src')
-rw-r--r--libcxxabi/src/private_typeinfo.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/libcxxabi/src/private_typeinfo.cpp b/libcxxabi/src/private_typeinfo.cpp
index cb7b7dc1e91..e6ffff106bf 100644
--- a/libcxxabi/src/private_typeinfo.cpp
+++ b/libcxxabi/src/private_typeinfo.cpp
@@ -249,7 +249,10 @@ bool
__function_type_info::can_catch(const __shim_type_info* thrown_type,
void*&) const
{
- // TODO: Can this be called?
+ // We can get here if someone tries to catch a function by reference.
+ // However if someone tries to throw a function, it immediately gets
+ // converted to a pointer, which will not convert back to a function
+ // at the catch clause. So this can never catch anything.
return false;
}
OpenPOWER on IntegriCloud