a6874f8ee8
Common block names can't clash with other names, so add `commonBlocks_` to `Scope` to record the common blocks of a scoping unit. This requires changes to how scopes are dumped and written to `.mod` files. Support common blocks in BIND statements. Add optional bind-name to `CommonBlockDetails`. Add `CheckNotInBlock()` for checking statements that are not allowed in block constructs. In `rewrite-parse-tree.cc`, no longer skip check for resolved names in common statements. But do skip the checks in compiler directives. Original-commit: flang-compiler/f18@805a1ffd9b Reviewed-on: https://github.com/flang-compiler/f18/pull/298 Tree-same-pre-rewrite: false
20 lines
756 B
Fortran
20 lines
756 B
Fortran
! Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
|
|
!
|
|
! Licensed under the Apache License, Version 2.0 (the "License");
|
|
! you may not use this file except in compliance with the License.
|
|
! You may obtain a copy of the License at
|
|
!
|
|
! http://www.apache.org/licenses/LICENSE-2.0
|
|
!
|
|
! Unless required by applicable law or agreed to in writing, software
|
|
! distributed under the License is distributed on an "AS IS" BASIS,
|
|
! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
! See the License for the specific language governing permissions and
|
|
! limitations under the License.
|
|
|
|
subroutine s1
|
|
block
|
|
!ERROR: IMPLICIT statement is not allowed in a BLOCK construct
|
|
implicit logical(a)
|
|
end block
|
|
end subroutine
|