diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 226c50a20fe..cb9c9ca964f 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 f04a4d1b904..5b6b88bde63 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);