[flang] Fixed a crash
Summary: I found a small test case that caused a crash when derived type definitions have parameters without definitions. Reviewers: tskeith, klausler, DavidTruby Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79282
This commit is contained in:
parent
7cbb495ab4
commit
b6f1bad630
|
@ -77,7 +77,9 @@ void DerivedTypeSpec::CookParameters(evaluate::FoldingContext &foldingContext) {
|
|||
name = *nextNameIter++;
|
||||
auto it{std::find_if(parameterDecls.begin(), parameterDecls.end(),
|
||||
[&](const Symbol &symbol) { return symbol.name() == name; })};
|
||||
CHECK(it != parameterDecls.end());
|
||||
if (it == parameterDecls.end()) {
|
||||
break;
|
||||
}
|
||||
attr = it->get().get<TypeParamDetails>().attr();
|
||||
} else {
|
||||
messages.Say(name_,
|
||||
|
|
|
@ -30,4 +30,11 @@ module m
|
|||
!ERROR: Type parameter, component, or procedure binding 'a' already defined in this type
|
||||
integer, len :: a
|
||||
end type
|
||||
!ERROR: No definition found for type parameter 'k'
|
||||
!ERROR: No definition found for type parameter 'l'
|
||||
type :: t6(k, l)
|
||||
!ERROR: Must be a constant value
|
||||
character(kind=k, len=l) :: d3
|
||||
end type
|
||||
type(t6(2, 10)) :: x3
|
||||
end module
|
||||
|
|
Loading…
Reference in a new issue