Files
llvm-project/flang/test/Semantics/pointer01.f90
Eugene Epshteyn 413e71b700 [flang] Main program symbol no longer conflicts with the other symbols (#149169)
The following code is now accepted:
```
module m
end
program m
use m
end
```
The PROGRAM name doesn't really have an effect on the compilation
result, so it shouldn't result in symbol name conflicts.

This change makes the main program symbol name all uppercase in the
cooked character stream. This makes it distinct from all other symbol
names that are all lowercase in cooked character stream.

Modified the tests that were checking for lower case main program name.
2025-07-17 14:18:21 -04:00

37 lines
898 B
Fortran

! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic
module m
real mobj
contains
subroutine msubr
end subroutine
end module
program main
use m
pointer main
!ERROR: Cannot change POINTER attribute on use-associated 'mobj'
pointer mobj
!ERROR: Cannot change POINTER attribute on use-associated 'msubr'
pointer msubr
!ERROR: 'inner' cannot have the POINTER attribute
pointer inner
real obj
!ERROR: 'ip' may not have both the POINTER and PARAMETER attributes
integer, parameter :: ip = 123
pointer ip
type dt; end type
!ERROR: 'dt' cannot have the POINTER attribute
pointer dt
interface generic
subroutine extsub
end subroutine
end interface
!ERROR: 'generic' cannot have the POINTER attribute
pointer generic
namelist /nml/ obj
!ERROR: 'nml' cannot have the POINTER attribute
pointer nml
contains
subroutine inner
end subroutine
end