Dave Korn wrote: > Dave Korn wrote: >> Tobias Burnus wrote: > >>> I agree that for "main" the call to "__main()" should happend and thus >>> expand_main_function should be called. I'm not sure in about the exact >>> assumptions of the middle end. In principle, it would be OK if the >>> MAIN__ function would show up as MAIN__ in gimple/-fdump-tree-original. >>> The only potential inconvenience I see, is the mentioned reference to >>> MAIN__ instead of <program name> in middle-end warnings, which can >>> confuse users.
Is it legitimate to have a space in an IDENTIFIER_NODE? I have a cheeky idea: $ svn diff Index: trans-decl.c =================================================================== --- trans-decl.c (revision 147949) +++ trans-decl.c (working copy) @@ -3859,7 +3859,8 @@ tmp = build_function_type_list (integer_type_node, integer_type_node, build_pointer_type (pchar_type_node), NULL_TREE); - ftn_main = build_decl (FUNCTION_DECL, get_identifier ("main"), tmp); + main_identifier_node = get_identifier ("main"); + ftn_main = build_decl (FUNCTION_DECL, main_identifier_node, tmp); DECL_EXTERNAL (ftn_main) = 0; TREE_PUBLIC (ftn_main) = 1; TREE_STATIC (ftn_main) = 1; Index: parse.c =================================================================== --- parse.c (revision 147949) +++ parse.c (working copy) @@ -1424,8 +1424,10 @@ { gfc_symbol *main_program; symbol_attribute attr; + const char *identifier; - gfc_get_symbol (name, ns, &main_program); + identifier = gfc_get_string ("PROGRAM %s", name); + gfc_get_symbol (identifier, ns, &main_program); gfc_clear_attr (&attr); attr.flavor = FL_PROGRAM; attr.proc = PROC_UNKNOWN; dkad...@ubik /gnu/gcc/gcc-patched/gcc/fortran $ That should give reasonable warnings from the middle end, no? I don't know what it might do to debugging though. cheers, DaveK