https://gcc.gnu.org/g:5a924600ea2f5fc3aee95385117ffaf492fa9203

commit 5a924600ea2f5fc3aee95385117ffaf492fa9203
Author: Pranil Dey <mkd...@gmail.com>
Date:   Tue Oct 1 10:10:17 2024 +0530

    removed conflicts

Diff:
---
 gcc/tree-eh.cc | 99 ----------------------------------------------------------
 1 file changed, 99 deletions(-)

diff --git a/gcc/tree-eh.cc b/gcc/tree-eh.cc
index 6ed705d6ebe9..37eb6081eca9 100644
--- a/gcc/tree-eh.cc
+++ b/gcc/tree-eh.cc
@@ -2275,106 +2275,7 @@ make_eh_dispatch_edges (geh_dispatch *stmt)
 
   return true;
 }
-bool
-same_or_derived_type (tree t1, tree t2)
-{
-  t1 = TYPE_MAIN_VARIANT (t1);
-  t2 = TYPE_MAIN_VARIANT (t2);
-  if (t1 == t2)
-    return true;
-  while ((TREE_CODE (t1) == POINTER_TYPE || TREE_CODE (t1) == REFERENCE_TYPE)
-        && TREE_CODE (t1) == TREE_CODE (t2))
-  {
-    t1 = TYPE_MAIN_VARIANT (TREE_TYPE (t1));
-    t2 = TYPE_MAIN_VARIANT (TREE_TYPE (t2));
-  }
-  if (t1 == t2)
-    return true;
-  if (!AGGREGATE_TYPE_P (t1) || !AGGREGATE_TYPE_P (t2))
-    return false;
-  return odr_equivalent_or_derived_p (t1, t2);
-}
-
-// Check if a landing pad can handle any of the given exception types
-bool match_lp(eh_landing_pad lp, vec<tree> *exception_types) {
-    eh_region region = lp->region;
-
-    // Ensure the region is of type ERT_TRY
-    if (region && region->type == ERT_TRY) {
-        eh_catch_d *catch_handler = region->u.eh_try.first_catch;
-
-        while (catch_handler) {
-            tree type_list = catch_handler->type_list;
-
-           if (!type_list)
-             return true;
-
-            for (tree t = type_list; t; t = TREE_CHAIN(t)) {
-                tree type = TREE_VALUE(t);
-                for (unsigned i = 0; i < exception_types->length(); ++i) {
-                  // match found or a catch-all handler (NULL)
-                    if (!type || same_or_derived_type ((*exception_types)[i], 
type)) {
-                        return true;
-                    }
-                }
-            }
-            catch_handler = catch_handler->next_catch;
-        }
-    }
-    return false;
-}
-
-// Function to update landing pad in throw_stmt_table for a given statement
-void update_stmt_eh_region(gimple *stmt) {
-  auto_vec<tree> exception_types;
-  if (!stmt_throw_types (cfun, stmt, &exception_types)) {
-        return;
-    }
-    
-    int lp_nr = lookup_stmt_eh_lp_fn(cfun, stmt);
-    if (lp_nr <= 0) {
-        return;
-    }
-
-    eh_landing_pad lp = get_eh_landing_pad_from_number(lp_nr);
-    if (!lp) {
-        return;
-    }
-
-    eh_region region = lp->region;
-
-    // Walk up the region tree
-    while (region) {
-        switch (region->type) {
-            case ERT_CLEANUP:
-                *cfun->eh->throw_stmt_table->get(const_cast<gimple *>(stmt)) = 
lp->index;
-                return;
 
-            case ERT_TRY:
-                if (match_lp(lp, &exception_types)) {
-                    *cfun->eh->throw_stmt_table->get(const_cast<gimple 
*>(stmt)) = lp->index;
-                    return;
-                }
-                break;
-
-            case ERT_MUST_NOT_THROW:
-                // Undefined behavior, leave edge unchanged
-                return;
-
-            case ERT_ALLOWED_EXCEPTIONS:
-                if (!match_lp(lp, &exception_types)) {
-                    return;
-                }
-                break;
-
-            default:
-                break;
-        }
-        region = region->outer;
-    }
-
-    remove_stmt_from_eh_lp_fn(cfun, stmt);
-}
 bool
 same_or_derived_type (tree t1, tree t2)
 {

Reply via email to