From a7ad6c2d616aff70b3ad1b17bae0d9fd9ba0478a Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Mon, 1 Jun 2009 09:00:35 +0200 Subject: [PATCH] re PR fortran/40309 (gfortran does not support static c/d-tors.) 2009-06-01 Tobias Burnus PR fortran/40309 * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main". (create_main_function): Set main_identifier_node. From-SVN: r148035 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-decl.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c94b7d720a43..533ac20a3372 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2009-06-01 Tobias Burnus + + PR fortran/40309 + * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main". + (create_main_function): Set main_identifier_node. + 2009-05-29 Francois-Xavier Coudert PR fortran/40019 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index a036aebd1727..ef6172c85c34 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -289,7 +289,10 @@ gfc_get_label_decl (gfc_st_label * lp) static tree gfc_sym_identifier (gfc_symbol * sym) { - return (get_identifier (sym->name)); + if (sym->attr.is_main_program && strcmp (sym->name, "main") == 0) + return (get_identifier ("MAIN__")); + else + return (get_identifier (sym->name)); } @@ -3874,6 +3877,8 @@ create_main_function (tree fndecl) tmp = build_function_type_list (integer_type_node, integer_type_node, build_pointer_type (pchar_type_node), NULL_TREE); + main_identifier_node = get_identifier ("main"); + ftn_main = build_decl (FUNCTION_DECL, main_identifier_node, tmp); ftn_main = build_decl (FUNCTION_DECL, get_identifier ("main"), tmp); DECL_EXTERNAL (ftn_main) = 0; TREE_PUBLIC (ftn_main) = 1; -- 2.43.5