I am using a Beta version to test this, specifically:
ifort (IFORT) 14.0.0 20130416
I have a string module which defines a string_t type with private components, in a stringhelper_m private module (save a few public entities like the string_t type, and some procedures/overloaded intrinsics for working with C strings. When I instantiate a string_t object and use my overloaded assignment operator in a unit test (which USEs stringhelper_m) and try to assign a character litteral (via my defined/overloaded assignment) I get the following compile time warning:
stringhelpertests.F90(41): warning #6931: Fortran 2008 does not allow this assignment statement. ['How are you'] testvar1 = 'How are you'
The assignment operator should be resolving to:
elemental subroutine AssignChars(lhs,rhs) class(string_t) ,intent(inout) :: lhs character(*) ,intent(in) :: rhs lhs%string = rhs end subroutine
The code was compiled with the -warn -stand f08 and -assume reallocate_lhs flags. Am I indeed violating the 2008 standard here? If so, why? If not, then I think this is a bug. I am on OS X using CMake, and CMake's testdriver/harness which is provided in C by CMake.
Sources and CMakeLists.txt to build is attached.