egcs-1.1b dbxout.c and non-constant TYP

grahams@rcp.co.uk grahams@rcp.co.uk
Mon Sep 28 07:44:00 GMT 1998


There are a small number of problems when using gnat-3.10p
with egcs which can be identified by configuring with --enable-checking
and attempting to perform a bootstrap.

store-constructor()    gcc/expr.c
=======================

This failure is because DECL_SIZE() is returning
a SAVE_EXPR which is then being passed to the
TREE_INT_CST_LOW() macro to obtain the `bitsize`

expand-expr()        gcc/expr.c
=======================

This failure is bacause a ERROR_MARK is being passed
to the TYPE_MODE() macro.

(gnu pascal also fails here for the same reason)

put_var_into_stack()  gcc/function.c
==========================

This failure is because a SAVE_EXPR is being passed
to the DECL_NONLOCAL() macro.

This routine has code to correctly handle a SAVE_EXPR
elsewhere in the routine, but it blindly passes what obviously
might be a SAVE_EXPR to the DECL_NONLOCAL() macro.
 
print_int_cst_octal()   gcc/dbxout.c
=========================

This failure is because a NOP_EXPR is being passed
to the TREE_INT_CST_LOW() macro.

I have some hacks to get gnat-3.10p to bootstrap with
enable-checking configured, but they are just that hacks.

I haven't identified if its gnat generating bad `trees` or `gcc`
processing these trees incorrectly.

Graham





More information about the Gcc-bugs mailing list