re PR c++/12709 (ICE with __FUNCTION__ and function-try-block)
2004-01-13 Andrew Pinski <pinskia@physics.uc.edu> PR c++/12709 * c-common.c (finish_fname_decls): Use the chain only if the tree is an expr_stmt. 2004-01-13 Andrew Pinski <pinskia@physics.uc.edu> PR c++/12709 * g++.dg/parse/try-catch-1.C: New test. From-SVN: r75814
This commit is contained in:
parent
81c740ba1b
commit
bfaba7a9c3
|
@ -1,3 +1,9 @@
|
|||
2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR c++/12709
|
||||
* c-common.c (finish_fname_decls): Use the chain only if the
|
||||
tree is an expr_stmt.
|
||||
|
||||
2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* rtl.def: Add comment about new option in automata_option.
|
||||
|
|
|
@ -1053,7 +1053,13 @@ finish_fname_decls (void)
|
|||
tree *p = &DECL_SAVED_TREE (current_function_decl);
|
||||
/* Skip the dummy EXPR_STMT and any EH_SPEC_BLOCK. */
|
||||
while (TREE_CODE (*p) != COMPOUND_STMT)
|
||||
p = &TREE_CHAIN (*p);
|
||||
{
|
||||
if (TREE_CODE (*p) == EXPR_STMT)
|
||||
p = &TREE_CHAIN (*p);
|
||||
else
|
||||
p = &TREE_OPERAND(*p, 0);
|
||||
}
|
||||
|
||||
p = &COMPOUND_BODY (*p);
|
||||
if (TREE_CODE (*p) == SCOPE_STMT)
|
||||
p = &TREE_CHAIN (*p);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR c++/12709
|
||||
* g++.dg/parse/try-catch-1.C: New test.
|
||||
|
||||
2004-01-13 Arnaud Charlet <charlet@act-europe.fr>
|
||||
|
||||
* ada/acats/run_all.sh: Add more verbose output in acats.log
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
// Test case from: <ncm-nospam@cantrip.org>
|
||||
// Reduced by <bangerth@dealii.org>
|
||||
// The problem was that g++ was ICE because
|
||||
// it was deferring an NULL pointer because
|
||||
// it should have been taking the operand 1
|
||||
// instead of the chain in finish_fname_decls.
|
||||
|
||||
|
||||
void fun()
|
||||
try
|
||||
{
|
||||
__FUNCTION__;
|
||||
}
|
||||
catch (...) {}
|
Loading…
Reference in New Issue