[Bug fortran/27996] [4.2 and 4.1 only] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)

pault at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Jan 14 14:51:00 GMT 2007



------- Comment #4 from pault at gcc dot gnu dot org  2007-01-14 14:50 -------
Subject: Bug 27996

Author: pault
Date: Sun Jan 14 14:49:50 2007
New Revision: 120772

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=120772
Log:
2007-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
            Paul Thomas  <pault@gcc.gnu.org>

        Back port from trunk

        PR fortran/30408
        * lang.opt: Add Wcharacter_truncation option.
        * options.c (gfc_init_options): Initialize
        gfc_option.warn_character_truncation to zero.
        (gfc_handle_option): Add case for OPT_Wcharacter_truncation.

        PR fortran/30408
        * resolve.c (resolve_code): Use the code->expr character length
        directly to set length of llen.

2007-01-14  Paul Thomas  <pault@gcc.gnu.org>

        Backports from trunk

        PR fortran/23232
        * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
        functions to signal that a DATA statement is being matched.
        (gfc_match_data): Call gfc_set_in_match_data on entry and on
        exit.
        * gfortran.h : Add prototypes for above.
        * expr.c (check_init_expr): Avoid check on parameter or
        variable if gfc_in_match_data is true.
        (gfc_match_init_expr): Do not call error on non-reduction of
        expression if gfc_in_match_data is true.

        PR fortran/27996
        PR fortran/27998
        * decl.c (gfc_set_constant_character_len): Add boolean arg to
        flag array constructor resolution.  Warn if string is being
        truncated.  Standard dependent error if string is padded. Set
        new arg to false for all three calls to
        gfc_set_constant_character_len.
        * match.h : Add boolean arg to prototype for
        gfc_set_constant_character_len.
        * gfortran.h : Add warn_character_truncation to gfc_options.
        * options.c (set_Wall): Set warn_character_truncation if -Wall
        is set.
        * resolve.c (resolve_code): Warn if rhs string in character
        assignment has to be truncated.
        * array.c (gfc_resolve_character_array_constructor): Set new
        argument to true for call to gfc_set_constant_character_len.

        PR fortran/30410
        * trans-decl.c (gfc_sym_mangled_function_id): Module, external
        symbols must not have the module name prepended.

2007-01-14  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/23232
        * gfortran.dg/data_implied_do_1.f90: New test.

        PR fortran/27996
        PR fortran/27998
        * gfortran.dg/char_length_1.f90: New test.

        PR fortran/30410
        * gfortran.dg/external_procedures_2.f90: New test.

Added:
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/char_length_1.f90
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/data_implied_do_1.f90
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/external_procedures_2.f90
Modified:
    branches/gcc-4_2-branch/gcc/fortran/ChangeLog
    branches/gcc-4_2-branch/gcc/fortran/array.c
    branches/gcc-4_2-branch/gcc/fortran/decl.c
    branches/gcc-4_2-branch/gcc/fortran/expr.c
    branches/gcc-4_2-branch/gcc/fortran/gfortran.h
    branches/gcc-4_2-branch/gcc/fortran/lang.opt
    branches/gcc-4_2-branch/gcc/fortran/match.h
    branches/gcc-4_2-branch/gcc/fortran/options.c
    branches/gcc-4_2-branch/gcc/fortran/resolve.c
    branches/gcc-4_2-branch/gcc/fortran/trans-decl.c
    branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



More information about the Gcc-bugs mailing list