From 2994236dfb5f9bee8fbf02b1b59d5acdf0037fbd Mon Sep 17 00:00:00 2001 From: fxcoudert Date: Wed, 3 Oct 2007 21:27:39 +0000 Subject: [PATCH] PR fortran/26682 * trans-decl.c (build_function_decl): Set "externally_visible" attribute on the MAIN program decl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128993 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-decl.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 226c50a..cb9c9ca 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-10-03 Francois-Xavier Coudert + + PR fortran/26682 + * trans-decl.c (build_function_decl): Set "externally_visible" + attribute on the MAIN program decl. + 2007-10-03 Tobias Schlüter PR fortran/33198 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index f04a4d1..5b6b88b 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1321,6 +1321,12 @@ build_function_decl (gfc_symbol * sym) TREE_SIDE_EFFECTS (fndecl) = 0; } + /* For -fwhole-program to work well, MAIN__ needs to have the + "externally_visible" attribute. */ + if (attr.is_main_program) + DECL_ATTRIBUTES (fndecl) + = tree_cons (get_identifier("externally_visible"), NULL_TREE, NULL_TREE); + /* Layout the function declaration and put it in the binding level of the current function. */ pushdecl (fndecl); -- 2.7.4