Skip to content

Commit

Permalink
[flang] Response to Steve Scalpone's suggestion to improve a message
Browse files Browse the repository at this point in the history
Summary: I updated the code that produces the message and the associated test.

Reviewers: sscalpone, DavidTruby, kiranchandramohan

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79514
  • Loading branch information
psteinfeld committed May 6, 2020
1 parent 16c800b commit 07b69dc
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion flang/lib/Evaluate/check-expression.cpp
Expand Up @@ -207,7 +207,7 @@ class CheckSpecificationExprHelper
return std::nullopt;
} else if (scope_.IsDerivedType() && IsVariableName(symbol) &&
specExprContext_ == SpecificationExprContext::BOUND) { // C750
return "derived type component not allowed to reference to variable '"s +
return "derived type component not allowed to reference variable '"s +
symbol.name().ToString() + "'";
} else if (symbol.IsDummy()) {
if (symbol.attrs().test(semantics::Attr::OPTIONAL)) {
Expand Down
6 changes: 3 additions & 3 deletions flang/test/Semantics/resolve89.f90
Expand Up @@ -58,23 +58,23 @@ subroutine s(iArg, allocArg, pointerArg, arrayArg, ioArg, optionalArg)
real, dimension(iabs(iArg)) :: arrayVarWithIntrinsic

type arrayType
!ERROR: Invalid specification expression: derived type component not allowed to reference to variable 'var'
!ERROR: Invalid specification expression: derived type component not allowed to reference variable 'var'
real, dimension(var) :: varField
!ERROR: Invalid specification expression: reference to impure function 'ivolatilestmtfunc'
real, dimension(iVolatileStmtFunc()) :: arrayFieldWithVolatile
!ERROR: Invalid specification expression: reference to impure function 'iimpurestmtfunc'
real, dimension(iImpureStmtFunc()) :: arrayFieldWithImpureFunction
!ERROR: Invalid specification expression: reference to statement function 'ipurestmtfunc'
real, dimension(iPureStmtFunc()) :: arrayFieldWithPureFunction
!ERROR: Invalid specification expression: derived type component not allowed to reference to variable 'iarg'
!ERROR: Invalid specification expression: derived type component not allowed to reference variable 'iarg'
real, dimension(iabs(iArg)) :: arrayFieldWithIntrinsic
!ERROR: Invalid specification expression: reference to intrinsic 'allocated' not allowed for derived type components
real, dimension(merge(1, 2, allocated(allocArg))) :: realField1
!ERROR: Invalid specification expression: reference to intrinsic 'associated' not allowed for derived type components
real, dimension(merge(1, 2, associated(pointerArg))) :: realField2
!ERROR: Invalid specification expression: non-constant reference to inquiry intrinsic 'is_contiguous' not allowed for derived type components
real, dimension(merge(1, 2, is_contiguous(arrayArg))) :: realField3
!ERROR: Invalid specification expression: derived type component not allowed to reference to variable 'ioarg'
!ERROR: Invalid specification expression: derived type component not allowed to reference variable 'ioarg'
real, dimension(ioArg) :: realField4
!ERROR: Invalid specification expression: reference to intrinsic 'present' not allowed for derived type components
real, dimension(merge(1, 2, present(optionalArg))) :: realField5
Expand Down

0 comments on commit 07b69dc

Please sign in to comment.