[gcc r12-3349] Fix target/102173 ICE after error recovery

Andrew Pinski pinskia@gcc.gnu.org
Fri Sep 3 16:57:28 GMT 2021


https://gcc.gnu.org/g:6b69bf5729852d0510abbe8e04078ddecef0cf17

commit r12-3349-g6b69bf5729852d0510abbe8e04078ddecef0cf17
Author: Andrew Pinski <apinski@marvell.com>
Date:   Thu Sep 2 20:59:04 2021 +0000

    Fix target/102173 ICE after error recovery
    
    After the recent r12-3278-823685221de986a change, the testcase
    gcc.target/aarch64/sve/acle/general-c/type_redef_1.c started
    to ICE as the code was not ready for error_mark_node in the
    type.  This fixes that and the testcase now passes.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-sve-builtins.cc (register_vector_type):
            Handle error_mark_node as the type of the type_decl.

Diff:
---
 gcc/config/aarch64/aarch64-sve-builtins.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index f71b287570e..bc92213665c 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -3416,6 +3416,7 @@ register_vector_type (vector_type_index type)
      installing an incorrect type.  */
   if (decl
       && TREE_CODE (decl) == TYPE_DECL
+      && TREE_TYPE (decl) != error_mark_node
       && TYPE_MAIN_VARIANT (TREE_TYPE (decl)) == vectype)
     vectype = TREE_TYPE (decl);
   acle_vector_types[0][type] = vectype;


More information about the Gcc-cvs mailing list