Files
clang-p2996/flang/test/Semantics/oldparam02.f90
Peter Klausler 96aa48100c [flang] Make uninitialized allocatable components explicitly NULL() in structure constructors
When a structure constructor does not initialize an allocatable component,
ensure that the typed expression representation contains an explicit
NULL() for the component.  Expression semantics already copies default
initialized expressions for nonallocatable components into structure
constructors.  This change is expected to simplify lowering.

Differential Revision: https://reviews.llvm.org/D121162
2022-03-07 16:41:38 -08:00

29 lines
1.0 KiB
Fortran

! RUN: not %flang -falternative-parameter-statement -fsyntax-only %s 2>&1 | FileCheck %s
! Error tests for "old style" PARAMETER statements
subroutine subr(x1,x2,x3,x4,x5)
type(*), intent(in) :: x1
class(*), intent(in) :: x2
real, intent(in) :: x3(*)
real, intent(in) :: x4(:)
character(*), intent(in) :: x5
!CHECK: error: TYPE(*) dummy argument may only be used as an actual argument
parameter p1 = x1
!CHECK: error: Must be a constant value
parameter p2 = x2
!CHECK: error: Whole assumed-size array 'x3' may not appear here without subscripts
!CHECK: error: Must be a constant value
parameter p3 = x3
!CHECK: error: Must be a constant value
parameter p4 = x4
!CHECK: error: Must be a constant value
parameter p5 = x5
!CHECK: The expression must be a constant of known type
parameter p6 = z'feedfacedeadbeef'
!CHECK: error: Must be a constant value
parameter p7 = len(x5)
real :: p8
!CHECK: error: Alternative style PARAMETER 'p8' must not already have an explicit type
parameter p8 = 666
end