forked from OSchip/llvm-project
[flang] review comment
Original-commit: flang-compiler/f18@f5c46291ec Reviewed-on: https://github.com/flang-compiler/f18/pull/580
This commit is contained in:
parent
40fb469233
commit
2f49ddeefe
|
@ -3941,7 +3941,7 @@ void DeclarationVisitor::CheckExplicitInterface(Symbol &symbol) {
|
||||||
const Symbol *subp{FindSubprogram(*interface)};
|
const Symbol *subp{FindSubprogram(*interface)};
|
||||||
if (subp == nullptr || !subp->HasExplicitInterface()) {
|
if (subp == nullptr || !subp->HasExplicitInterface()) {
|
||||||
Say(symbol.name(),
|
Say(symbol.name(),
|
||||||
"The interface of '%s' (%s) is not an abstract interface or a "
|
"The interface of '%s' ('%s') is not an abstract interface or a "
|
||||||
"procedure with an explicit interface"_err_en_US,
|
"procedure with an explicit interface"_err_en_US,
|
||||||
symbol.name(), interface->name());
|
symbol.name(), interface->name());
|
||||||
context().SetError(symbol);
|
context().SetError(symbol);
|
||||||
|
|
|
@ -22,20 +22,20 @@ module m
|
||||||
procedure(integer) :: b
|
procedure(integer) :: b
|
||||||
procedure(foo) :: c
|
procedure(foo) :: c
|
||||||
procedure(bar) :: d
|
procedure(bar) :: d
|
||||||
!ERROR: The interface of 'e' (missing) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'e' ('missing') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(missing) :: e
|
procedure(missing) :: e
|
||||||
!ERROR: The interface of 'f' (b) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'f' ('b') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(b) :: f
|
procedure(b) :: f
|
||||||
procedure(c) :: g
|
procedure(c) :: g
|
||||||
external :: h
|
external :: h
|
||||||
!ERROR: The interface of 'i' (h) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'i' ('h') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(h) :: i
|
procedure(h) :: i
|
||||||
procedure(forward) :: j
|
procedure(forward) :: j
|
||||||
!ERROR: The interface of 'k1' (bad1) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'k1' ('bad1') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(bad1) :: k1
|
procedure(bad1) :: k1
|
||||||
!ERROR: The interface of 'k2' (bad2) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'k2' ('bad2') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(bad2) :: k2
|
procedure(bad2) :: k2
|
||||||
!ERROR: The interface of 'k3' (bad3) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'k3' ('bad3') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(bad3) :: k3
|
procedure(bad3) :: k3
|
||||||
|
|
||||||
abstract interface
|
abstract interface
|
||||||
|
|
|
@ -57,7 +57,7 @@ module m
|
||||||
procedure(foo), nopass, deferred :: f
|
procedure(foo), nopass, deferred :: f
|
||||||
!ERROR: DEFERRED is required when an interface-name is provided
|
!ERROR: DEFERRED is required when an interface-name is provided
|
||||||
procedure(foo), nopass :: g
|
procedure(foo), nopass :: g
|
||||||
!ERROR: The interface of 'h' (bar) is not an abstract interface or a procedure with an explicit interface
|
!ERROR: The interface of 'h' ('bar') is not an abstract interface or a procedure with an explicit interface
|
||||||
procedure(bar), nopass, deferred :: h
|
procedure(bar), nopass, deferred :: h
|
||||||
end type
|
end type
|
||||||
type t2
|
type t2
|
||||||
|
|
Loading…
Reference in New Issue