[PATCH] D98355: [flang] Fix call to CHECK() on overriding an erroneous type-bound procedure
Pete Steinfeld via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 10 09:38:59 PST 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG40e261803bd4: [flang] Fix call to CHECK() on overriding an erroneous type-bound procedure (authored by PeteSteinfeld).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D98355/new/
https://reviews.llvm.org/D98355
Files:
flang/lib/Semantics/check-declarations.cpp
flang/test/Semantics/bindings01.f90
Index: flang/test/Semantics/bindings01.f90
===================================================================
--- flang/test/Semantics/bindings01.f90
+++ flang/test/Semantics/bindings01.f90
@@ -132,6 +132,23 @@
end subroutine
end module m1
+module t2
+ type parent
+ real realField
+ contains
+ !ERROR: Procedure binding 'proc' with no dummy arguments must have NOPASS attribute
+ procedure proc
+ end type parent
+ type,extends(parent) :: child
+ contains
+ !ERROR: Procedure binding 'proc' with no dummy arguments must have NOPASS attribute
+ procedure proc
+ end type child
+contains
+ subroutine proc
+ end subroutine
+end module t2
+
program test
use m1
type,extends(t) :: t2
Index: flang/lib/Semantics/check-declarations.cpp
===================================================================
--- flang/lib/Semantics/check-declarations.cpp
+++ flang/lib/Semantics/check-declarations.cpp
@@ -1356,6 +1356,7 @@
: "Procedure binding '%s' with no dummy arguments"
" must have NOPASS attribute"_err_en_US,
name);
+ context_.SetError(*interface);
return;
}
passName = dummyArgs[0]->name();
@@ -1480,7 +1481,7 @@
SayWithDeclaration(*overridden,
"A type-bound procedure and its override must have compatible interfaces"_err_en_US);
}
- } else {
+ } else if (!context_.HasError(binding.symbol())) {
int passIndex{bindingChars->FindPassIndex(binding.passName())};
int overriddenPassIndex{
overriddenChars->FindPassIndex(overriddenBinding->passName())};
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98355.329692.patch
Type: text/x-patch
Size: 1660 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210310/320e0b02/attachment.bin>
More information about the llvm-commits
mailing list