public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
@ 2006-06-12 10:25 tobias dot burnus at physik dot fu-berlin dot de
2006-06-13 17:26 ` [Bug fortran/27996] " pault at gcc dot gnu dot org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: tobias dot burnus at physik dot fu-berlin dot de @ 2006-06-12 10:25 UTC (permalink / raw)
To: gcc-bugs
In the following, the assignment to str gets truncated twice.
gfortran -Wall does not give any warning.
Expected: As similar warning as NAG gives:
Warning: trunc.f90, line 2: Initialisation expression for STR truncated
At least the first initalization should be detected, possibly also the second.
Such error messaging works for real, dimension(3) :: [1.0, 2.0, 3.0] at both
places:
Error: different shape for Array assignment at (1) on dimension 1 (2/3)
---------------
program test
character(2) :: c = 'AAA'
c = 'ABC'
print *, c
end program test
---------------
--
Summary: Compile time warn for: character(2) :: str = 'ABC'
(expression truncated)
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tobias dot burnus at physik dot fu-berlin dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27996
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
@ 2006-06-13 17:26 ` pault at gcc dot gnu dot org
2006-06-23 13:59 ` tobias dot burnus at physik dot fu-berlin dot de
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-06-13 17:26 UTC (permalink / raw)
To: gcc-bugs
--
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|0000-00-00 00:00:00 |2006-06-13 17:24:13
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27996
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
2006-06-13 17:26 ` [Bug fortran/27996] " pault at gcc dot gnu dot org
@ 2006-06-23 13:59 ` tobias dot burnus at physik dot fu-berlin dot de
2006-11-29 20:01 ` patchapp at dberlin dot org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: tobias dot burnus at physik dot fu-berlin dot de @ 2006-06-23 13:59 UTC (permalink / raw)
To: gcc-bugs
------- 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
2006-06-13 17:26 ` [Bug fortran/27996] " pault at gcc dot gnu dot org
2006-06-23 13:59 ` tobias dot burnus at physik dot fu-berlin dot de
@ 2006-11-29 20:01 ` patchapp at dberlin dot org
2007-01-05 14:46 ` pault at gcc dot gnu dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: patchapp at dberlin dot org @ 2006-11-29 20:01 UTC (permalink / raw)
To: gcc-bugs
------- 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
` (2 preceding siblings ...)
2006-11-29 20:01 ` patchapp at dberlin dot org
@ 2007-01-05 14:46 ` pault at gcc dot gnu dot org
2007-01-14 14:51 ` [Bug fortran/27996] [4.2 and 4.1 only] " pault at gcc dot gnu dot org
2007-01-14 14:53 ` [Bug fortran/27996] [4.1 " pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2007-01-05 14:46 UTC (permalink / raw)
To: gcc-bugs
------- 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=gcc&view=rev&rev=120485
Log:
2007-01-05 Paul Thomas <pault@gcc.gnu.org>
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 <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.
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] [4.2 and 4.1 only] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
` (3 preceding siblings ...)
2007-01-05 14:46 ` pault at gcc dot gnu dot org
@ 2007-01-14 14:51 ` pault at gcc dot gnu dot org
2007-01-14 14:53 ` [Bug fortran/27996] [4.1 " pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2007-01-14 14:51 UTC (permalink / raw)
To: gcc-bugs
------- 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/27996] [4.1 only] Compile time warn for: character(2) :: str = 'ABC' (expression truncated)
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
` (4 preceding siblings ...)
2007-01-14 14:51 ` [Bug fortran/27996] [4.2 and 4.1 only] " pault at gcc dot gnu dot org
@ 2007-01-14 14:53 ` pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2007-01-14 14:53 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from pault at gcc dot gnu dot org 2007-01-14 14:52 -------
Fixed on trunk and 4.2
Paul
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Summary|[4.2 and 4.1 only] Compile |[4.1 only] Compile time warn
|time warn for: character(2)|for: character(2) :: str =
|:: str = 'ABC' (expression |'ABC' (expression truncated)
|truncated) |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27996
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-01-14 14:53 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-12 10:25 [Bug fortran/27996] New: Compile time warn for: character(2) :: str = 'ABC' (expression truncated) tobias dot burnus at physik dot fu-berlin dot de
2006-06-13 17:26 ` [Bug fortran/27996] " pault at gcc dot gnu dot org
2006-06-23 13:59 ` tobias dot burnus at physik dot fu-berlin dot de
2006-11-29 20:01 ` patchapp at dberlin dot org
2007-01-05 14:46 ` pault at gcc dot gnu dot org
2007-01-14 14:51 ` [Bug fortran/27996] [4.2 and 4.1 only] " pault at gcc dot gnu dot org
2007-01-14 14:53 ` [Bug fortran/27996] [4.1 " pault at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).