[llvm-branch-commits] [llvm-gcc-branch] r105904 - in /llvm-gcc-4.2/branches/Apple/Morbo: ./ gcc/llvm-convert.cpp
Bill Wendling
isanbard at gmail.com
Sat Jun 12 17:47:10 PDT 2010
Author: void
Date: Sat Jun 12 19:47:10 2010
New Revision: 105904
URL: http://llvm.org/viewvc/llvm-project?rev=105904&view=rev
Log:
$ svn merge -c 105902 https://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk
--- Merging r105902 into '.':
U gcc/llvm-convert.cpp
Modified:
llvm-gcc-4.2/branches/Apple/Morbo/ (props changed)
llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp
Propchange: llvm-gcc-4.2/branches/Apple/Morbo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jun 12 19:47:10 2010
@@ -1,2 +1,2 @@
/llvm/trunk:100565
-/llvm-gcc-4.2/trunk:98728,98841,98893,99196,99305,99592-99593,99629,99670,99982,99984-99986,99988,99992-99993,99995,99997-99999,100035,100149,100303,100565,100624-100626,100712,100721,101090-101091,101199,101216,101304,101333,101804,101959,102139,102148,102433,102444,102506-102507,102511,102532,102561,102589,102636,102648,102745,103361,103366-103367,103394,103414,103644,103800,103918,104181,104384,104420,104423,104726,105504
+/llvm-gcc-4.2/trunk:98728,98841,98893,99196,99305,99592-99593,99629,99670,99982,99984-99986,99988,99992-99993,99995,99997-99999,100035,100149,100303,100565,100624-100626,100712,100721,101090-101091,101199,101216,101304,101333,101804,101959,102139,102148,102433,102444,102506-102507,102511,102532,102561,102589,102636,102648,102745,103361,103366-103367,103394,103414,103644,103800,103918,104181,104384,104420,104423,104726,105504,105902
Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp?rev=105904&r1=105903&r2=105904&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp Sat Jun 12 19:47:10 2010
@@ -2099,6 +2099,7 @@
foreach_reachable_handler(i, false, AddHandler, &Handlers);
bool HasCleanup = false;
+ bool HasCatchAll = false;
static GlobalVariable *CatchAll = 0;
for (std::vector<struct eh_region *>::iterator I = Handlers.begin(),
@@ -2138,6 +2139,7 @@
}
Args.push_back(CatchAll);
+ HasCatchAll = true;
} else {
// Add the type infos.
for (; TypeList; TypeList = TREE_CHAIN(TypeList)) {
@@ -2152,18 +2154,17 @@
}
if (can_throw_external_1(i, false)) {
- if (HasCleanup && Args.size() == 2) {
- Args.push_back(ConstantInt::get(Type::getInt32Ty(Context), 0));
- } else {
- // Some exceptions from this region may not be caught by any handler.
- // Since invokes are required to branch to the unwind label no matter
- // what exception is being unwound, append a catch-all.
-
- // The representation of a catch-all is language specific.
- if (USING_SJLJ_EXCEPTIONS || !lang_eh_catch_all) {
- // Use a "cleanup" - this should be good enough for most languages.
+ if (HasCleanup) {
+ if (Args.size() == 2 || USING_SJLJ_EXCEPTIONS || !lang_eh_catch_all) {
+ // Insert the sentinal indicating that this is a cleanup-only
+ // selector. It may also be the representation of a catch-all for
+ // some languages.
Args.push_back(ConstantInt::get(Type::getInt32Ty(Context), 0));
- } else {
+ } else if (!HasCatchAll) {
+ // Some exceptions from this region may not be caught by any handler.
+ // Since invokes are required to branch to the unwind label no matter
+ // what exception is being unwound, append a catch-all.
+
if (!CatchAll) {
Constant *Init = 0;
tree catch_all_type = lang_eh_catch_all();
More information about the llvm-branch-commits
mailing list