------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-29 
15:32 -------
Subject: Bug 13082

CVSROOT:        /cvs/gcc
Module name:    gcc
Changes by:     [EMAIL PROTECTED]       2005-04-29 15:31:39

Modified files:
        gcc/fortran    : ChangeLog 
        gcc/testsuite  : ChangeLog 
        gcc/fortran    : trans-expr.c resolve.c trans-types.c gfortran.h 
                         decl.c trans-decl.c trans-array.c 
Added files:
        gcc/testsuite/gfortran.dg: entry_4.f90 
        gcc/testsuite/gfortran.fortran-torture/execute: entry_5.f90 
                                                        entry_2.f90 
                                                        entry_3.f90 
                                                        entry_7.f90 
                                                        entry_6.f90 
                                                        entry_4.f90 
                                                        entry_1.f90 
                                                        entry_8.f90 

Log message:
        2005-04-29  Jakub Jelinek  <[EMAIL PROTECTED]>
        
        PR fortran/13082
        PR fortran/18824
        * trans-expr.c (gfc_conv_variable): Handle return values in functions
        with alternate entry points.
        * resolve.c (resolve_entries): Remove unnecessary string termination
        after snprintf.  Set result of entry master.
        If all entries have the same type, set entry master's type
        to that common type, otherwise set mixed_entry_master attribute.
        * trans-types.c (gfc_get_mixed_entry_union): New function.
        (gfc_get_function_type): Use it for mixed_entry_master functions.
        * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
        * decl.c (gfc_match_entry): Set entry->result properly for
        function ENTRY.
        * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
        __entry argument.
        (build_entry_thunks): Handle return values in entry thunks.
        Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
        shared between multiple contexts.
        (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
        current_function_decl instead of sym->backend_decl.  Skip over
        entry master's entry id argument.  For mixed_entry_master entries or
        their results, return a COMPONENT_REF of the fake result.
        (gfc_trans_deferred_vars): Don't warn about missing return value if
        at least one entry point uses RESULT.
        (gfc_generate_function_code): For entry master returning
        CHARACTER, copy ts.cl->backend_decl to all entry result syms.
        * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
        values optional just because they are in entry master.
        
        * gfortran.dg/entry_4.f90: New test.
        * gfortran.fortran-torture/execute/entry_1.f90: New test.
        * gfortran.fortran-torture/execute/entry_2.f90: New test.
        * gfortran.fortran-torture/execute/entry_3.f90: New test.
        * gfortran.fortran-torture/execute/entry_4.f90: New test.
        * gfortran.fortran-torture/execute/entry_5.f90: New test.
        * gfortran.fortran-torture/execute/entry_6.f90: New test.
        * gfortran.fortran-torture/execute/entry_7.f90: New test.
        
        2005-04-29  Tobias Schl"uter  <[EMAIL PROTECTED]>
        
        * gfortran.fortran-torture/execute/entry_8.f90: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.412&r2=1.413
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5415&r2=1.5416
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-expr.c.diff?cvsroot=gcc&r1=1.41&r2=1.42
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/resolve.c.diff?cvsroot=gcc&r1=1.41&r2=1.42
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-types.c.diff?cvsroot=gcc&r1=1.40&r2=1.41
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcc&r1=1.67&r2=1.68
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/decl.c.diff?cvsroot=gcc&r1=1.34&r2=1.35
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-decl.c.diff?cvsroot=gcc&r1=1.56&r2=1.57
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-array.c.diff?cvsroot=gcc&r1=1.42&r2=1.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/entry_4.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_5.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_3.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_7.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_6.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_4.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.fortran-torture/execute/entry_8.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13082

Reply via email to