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

            Bug ID: 117750
           Summary: ICE: tree check: expected class ‘type’, have
                    ‘declaration’ (function_decl) in grokdeclarator, at
                    c/c-decl.cc:6981
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xieym3 at zohomail dot com
  Target Milestone: ---

$ cat 20241123025220_13.c
struct rtx_def ;
typedef struct rtx_def * rtx ;
enum rtx_code
{
REG ,
LAST_AND_UNUSED_RTX_CODE = 256
} ;
typedef union rtunion_def rtunion ;
struct rtx_def
{
enum rtx_code code : 16 ;
unsigned frame_related : 1 ;
} ;
static rtx
find_base_value ( src )
rtx src ;
{
rtx temp ;
rtx src_0 , src_2 ;
rtx src_1 , src_3 ;
if ( ( src_0 -> code == REG ) && ( ( { src_2 ; } ) -> frame_related ) )
return find_base_value ( src_0 ) ;
if ( ( src_1 -> code == REG ) && ( ( { src_3 ; } ) -> frame_related ) )
return find_base_value ( src_1 ) ;
if ( src_0 -> code == REG )
find_base_value ( src_0 ) ;
if ( src_1 -> code == REG )
find_base_value ( src_1 ) ;
}
rtx rtx
( src )
rtx src ;
{
return find_base_value ( src ) ;
}
$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=/data/xieym/exp/gcc/test_data/gcc-latest-install/bin/gcc
COLLECT_LTO_WRAPPER=/data/xieym/exp/gcc/test_data/gcc-latest-install/libexec/gcc/x86_64-pc-linux-gnu/15.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /data/xieym/exp/gcc/test_data/gcc-latest-src/configure
--enable-coverage --enable-checking --disable-multilib --disable-shared
--disable-bootstrap --enable-languages=c,c++
--prefix=/data/xieym/exp/gcc/test_data/gcc-latest-install
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.0.0 20241123 (experimental) (GCC)
$ gcc-trunk -x c -std=c2x -c 20241123025220_13.c -o /dev/null
20241123025220_13.c: In function ‘find_base_value’:
20241123025220_13.c:15:1: warning: old-style function definition
[-Wold-style-definition]
   15 | find_base_value ( src )
      | ^~~~~~~~~~~~~~~
20241123025220_13.c: At top level:
20241123025220_13.c:30:5: error: ‘rtx’ redeclared as different kind of symbol
   30 | rtx rtx
      |     ^~~
20241123025220_13.c:2:26: note: previous declaration of ‘rtx’ with type ‘rtx’
{aka ‘struct rtx_def *’}
    2 | typedef struct rtx_def * rtx ;
      |                          ^~~
20241123025220_13.c: In function ‘rtx’:
20241123025220_13.c:32:1: internal compiler error: tree check: expected class
‘type’, have ‘declaration’ (function_decl) in grokdeclarator, at
c/c-decl.cc:6981
   32 | rtx src ;
      | ^~~
0x567214e internal_error(char const*, ...)
       
/data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/diagnostic-global-context.cc:517
0x27bd5cd tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/tree.cc:9081
0xe09b06 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/tree.h:3817
0xe3aee7 grokdeclarator
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-decl.cc:6981
0xe31d55 start_decl(c_declarator*, c_declspecs*, bool, tree_node*, bool,
unsigned int*)
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-decl.cc:5592
0xf3242b c_parser_declaration_or_fndef
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-parser.cc:2806
0xf33350 c_parser_declaration_or_fndef
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-parser.cc:3026
0xf2e9a8 c_parser_external_declaration
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-parser.cc:2067
0xf2de4f c_parser_translation_unit
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-parser.cc:1921
0xfd0439 c_parse_file()
        /data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c/c-parser.cc:28878
0x10fb285 c_common_parse_file()
       
/data/xieym/exp/gcc/test_data/gcc-latest-src/gcc/c-family/c-opts.cc:1374
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to