[Bug fortran/70605] New: allocatable character scalar in type empty after assign
nuclearlee at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Apr 8 20:56:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70605
Bug ID: 70605
Summary: allocatable character scalar in type empty after
assign
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: nuclearlee at gmail dot com
Target Milestone: ---
Created attachment 38228
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38228&action=edit
Testcode containing a program containing a subroutine that accepts a variable
length character and an string (in) as an allocatable scalar (inout)
I've found that if I pass an allocatable scalar character string
(character(len=:), allocatable :: string) that is contained in a type to a
subroutine, allocate it in the subroutine, set it, it is passed back as
allocated, but it is empty. If I pass an allocatable scalar character to the
same subroutine, but it is not in a type, the return is as expected.
The test code I'm attaching contains a subroutine that concatenates an input
string to an allocatable scalar character, and returns the concatenated string.
I've tested in windows (from equation.com) and ubuntu with gfotran 4.8, 4.9 and
5.3, and all return the same empty string for the allocatable scalar in a type.
I've also compiled it with ifort 16 (just checking to see if something compiles
it correctly), and it returns correctly for both situations.
In ubuntu compiled with the command
gfortran-5 -std=f2008 -o call_test call_test.f90
and the results I get from the gcc 5.3:
~/testcode$ ./call_test_f.exe
string_in, string_cat_with_comma result: hello, hello
added hello to get
str_len1, strlen2, tot_len: 7 0 8
string_in, string_cat_with_comma result: goodbye, ,goodbye
added goodbye to get
str_len1, strlen2, tot_len: 8 0 9
string_in, string_cat_with_comma result: waithere, ,waithere
added waithere to get
**********
string_in, string_cat_with_comma result: hello, hello
added hello to get hello
str_len1, strlen2, tot_len: 7 5 13
string_in, string_cat_with_comma result: goodbye, hello,goodbye
added goodbye to get hello,goodbye
str_len1, strlen2, tot_len: 8 13 22
string_in, string_cat_with_comma result: waithere, hello,goodbye,waithere
added waithere to get hello,goodbye,waithere
More information about the Gcc-bugs
mailing list