This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/64391] ICE: SIGSEGV in get_attrs_for (trans-mem.c:179) with -fgnu-tm and #pragma GCC ivdep


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64391

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
So e.g.

diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index b449760..21fa497 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -183,6 +183,9 @@ static void *expand_regions (struct tm_region *,
 static tree
 get_attrs_for (const_tree x)
 {
+  if (x == NULL_TREE)
+    return NULL_TREE;
+
   switch (TREE_CODE (x))
     {
     case FUNCTION_DECL:
@@ -191,16 +194,16 @@ get_attrs_for (const_tree x)

     default:
       if (TYPE_P (x))
-       return NULL;
+       return NULL_TREE;
       x = TREE_TYPE (x);
       if (TREE_CODE (x) != POINTER_TYPE)
-       return NULL;
+       return NULL_TREE;
       /* FALLTHRU */

     case POINTER_TYPE:
       x = TREE_TYPE (x);
       if (TREE_CODE (x) != FUNCTION_TYPE && TREE_CODE (x) != METHOD_TYPE)
-       return NULL;
+       return NULL_TREE;
       /* FALLTHRU */

     case FUNCTION_TYPE:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]