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

2007-01-05 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-01-05 14:45 ---
Subject: Bug 27996

Author: pault
Date: Fri Jan  5 14:45:20 2007
New Revision: 120485

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=120485
Log:
2007-01-05  Paul Thomas  [EMAIL PROTECTED]

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.

2007-01-05  Paul Thomas  [EMAIL PROTECTED]

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.



Added:
trunk/gcc/testsuite/gfortran.dg/data_implied_do_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/array.c
trunk/gcc/fortran/decl.c
trunk/gcc/fortran/expr.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/match.h
trunk/gcc/fortran/options.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/char_length_1.f90


-- 


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



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

2006-11-29 Thread patchapp at dberlin dot org


--- Comment #2 from patchapp at dberlin dot org  2006-11-29 20:00 ---
Subject: Bug number PR27996

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-11/msg01989.html


-- 


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



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

2006-06-23 Thread tobias dot burnus at physik dot fu-berlin dot de


--- Comment #1 from tobias dot burnus at physik dot fu-berlin dot de  
2006-06-23 13:01 ---
Additional remarks (which I forget to make):

Both cases are valid Fortran as:

(1) If the length of 'variable' is less than that of 'expr', the value of
'expr' is truncated from the right until it is the same length as the
'variable'.

(2) If the length of 'variable' is greater than that of 'expr', the value of
'expr' is extended on the right with blanks until it is the same length as
the variable.

However, I still think it is useful to give a compile-time warning. This for
example should produce a warning:

program test
  character(20),parameter :: path = 'mypath/'
  character(20),parameter :: file = path // 'myfile.txt'
  print *, trim(file)
end program test

whereas using trim(path) // 'myfile.txt' should not.


-- 


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



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

2006-06-13 Thread pault at gcc dot gnu dot org


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-13 17:24:13
   date||


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