rjmccall added a comment.
In http://reviews.llvm.org/D12743#244375, @vsk wrote:
> Ah, ok. We have some objective-c++ code which calls into a boost routine
> which throws an exception. That results in an undefined reference to
> ___objc_personality_v0, because the boost library we linked against
vsk added a comment.
Ah, ok. We have some objective-c++ code which calls into a boost routine which
throws an exception. That results in an undefined reference to
___objc_personality_v0, because the boost library we linked against doesn't
have ___objc_personality_v0.
Should the compiler have f
rnk added a comment.
Right, I understand the behavior change, I'm just wondering why it results in
link failures. There isn't a ton of public info about how ObjC++ EH interacts
with C++ EH.
Repository:
rL LLVM
http://reviews.llvm.org/D12743
___
vsk marked an inline comment as done.
vsk added a comment.
Addressed Reid's comment w.r.t exception object type.
Repository:
rL LLVM
http://reviews.llvm.org/D12743
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-
This revision was automatically updated to reflect the committed changes.
Closed by commit rL247437: [test] Specify exception object type in two tests
(authored by vedantk).
Changed prior to commit:
http://reviews.llvm.org/D12743?vs=34408&id=34560#toc
Repository:
rL LLVM
http://reviews.llvm
vsk added a comment.
I think 'optimization' is a bit of a misnomer. There's a comment in this code
that reads: "Can't do the optimization if it has non-C++ uses", so that's why I
picked up the word. Without SimplifyPersonality(), some objective c++ code can
no longer link against c++ libraries.
rnk added a subscriber: rnk.
rnk added a comment.
I'm confused. I thought SimplifyPersonalityFunction was an optimization, but
somehow it caused link failures? Why do you think this was an ABI break?
Comment at: test/CodeGenObjCXX/exception-cxx.mm:8
@@ +7,3 @@
+ throw 0;
+
vsk accepted this revision.
vsk added a reviewer: vsk.
vsk marked an inline comment as done.
vsk added a comment.
This revision is now accepted and ready to land.
Committed r247421
http://reviews.llvm.org/D12743
___
cfe-commits mailing list
cfe-comm
rjmccall added a comment.
LGTM, thanks.
http://reviews.llvm.org/D12743
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
vsk updated the summary for this revision.
vsk updated this revision to Diff 34408.
vsk added a comment.
Thanks for the review.
- Addressed if (!U) bug.
- Added test which loads a personality function, confirmed that we crash
without the proper `if (!F)' check.
http://reviews.llvm.org/D12743
rjmccall added inline comments.
Comment at: lib/CodeGen/CGException.cpp:276
@@ +275,3 @@
+llvm::Function *F = dyn_cast(U);
+if (!U) return false;
+
if (!F)
You should test this by adding an uncommon use of the personality function.
Just declare it as a
vsk created this revision.
vsk added reviewers: majnemer, rjmccall.
vsk added a subscriber: cfe-commits.
When personality function references were moved from LandingPadInst to
Function, we forgot to update SimplifyPersonality(). This is an
12 matches
Mail list logo