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

--- Comment #4 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> 
---
Another variant (invalid) :

$ cat z1.c
void fn1 ()
{
void fnx ()
  int n;
  int a[n];
}


$ gcc-7-20170205 -c z1.c
z1.c: In function 'fnx':
z1.c:6:1: error: expected declaration specifiers before '}' token
 }
 ^
z1.c:5:7: error: declaration for parameter 'a' but no such parameter
   int a[n];
       ^
z1.c:4:7: error: declaration for parameter 'n' but no such parameter
   int n;
       ^
z1.c:6:1: error: expected '{' at end of input
 }
 ^
z1.c: In function 'fn1':
z1.c:6:1: error: expected declaration or statement at end of input
z1.c:1:6: internal compiler error: Segmentation fault
 void fn1 ()
      ^~~
0xbf633f crash_signal
        ../../gcc/toplev.c:333
0xc9053a get_frame_type
        ../../gcc/tree-nested.c:211
0xc9053a get_chain_decl
        ../../gcc/tree-nested.c:317
0xc93d89 get_chain_decl
        ../../gcc/tree-nested.c:909
0xc93d89 get_nonlocal_debug_decl
        ../../gcc/tree-nested.c:913
0xc94138 convert_nonlocal_reference_op
        ../../gcc/tree-nested.c:992
0xec2222 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/tree.c:11796
0x9649e0 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:203
0x964f5c walk_gimple_stmt(gimple_stmt_iterator*, tree_node*
(*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        ../../gcc/gimple-walk.c:586
0x965148 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*,
bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:51
0x965002 walk_gimple_stmt(gimple_stmt_iterator*, tree_node*
(*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        ../../gcc/gimple-walk.c:596
0x965148 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*,
bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:51
0xc8ff41 walk_body
        ../../gcc/tree-nested.c:656
0xc8ff98 walk_function
        ../../gcc/tree-nested.c:667
0xc8ff98 walk_all_functions
        ../../gcc/tree-nested.c:732
0xc98c32 lower_nested_functions(tree_node*)
        ../../gcc/tree-nested.c:3345
0x7f1670 cgraph_node::analyze()
        ../../gcc/cgraphunit.c:661
0x7f4ce3 analyze_functions
        ../../gcc/cgraphunit.c:1116
0x7f5a3a symbol_table::finalize_compilation_unit()
        ../../gcc/cgraphunit.c:2597

Reply via email to