forked from OSchip/llvm-project
[flang] Fix classes with variant and other fields
Fortran::FormatItem and UseStmt have both normal fields and a variant named 'u'. The Walk calls for the normal fields were missing. These were the only two classes I found where this occurs. Original-commit: flang-compiler/f18@23b8695a74 Reviewed-on: https://github.com/flang-compiler/f18/pull/17
This commit is contained in:
parent
c2c6e28cec
commit
66c9a69a61
|
@ -295,6 +295,10 @@ void Walk(const Fortran::DerivedTypeDataEditDesc &x, V &visitor) {
|
|||
visitor.Post(x);
|
||||
}
|
||||
}
|
||||
template<typename V> void Walk(const Fortran::FormatItem &x, V &visitor) {
|
||||
Walk(x.repeatCount, visitor);
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V>
|
||||
void Walk(const Fortran::IntrinsicTypeDataEditDesc &x, V &visitor) {
|
||||
if (visitor.Pre(x)) {
|
||||
|
@ -401,6 +405,11 @@ void Walk(const TypeBoundProcedureStmt::WithoutInterface &x, V &visitor) {
|
|||
visitor.Post(x);
|
||||
}
|
||||
}
|
||||
template<typename V> void Walk(const UseStmt &x, V &visitor) {
|
||||
Walk(x.nature, visitor);
|
||||
Walk(x.moduleName, visitor);
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V> void Walk(const WriteStmt &x, V &visitor) {
|
||||
if (visitor.Pre(x)) {
|
||||
Walk(x.iounit, visitor);
|
||||
|
@ -1037,9 +1046,6 @@ void Walk(const FormTeamStmt::FormTeamSpec &x, V &visitor) {
|
|||
template<typename V> void Walk(const Format &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V> void Walk(const Fortran::FormatItem &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V> void Walk(const GenericSpec &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
|
@ -1197,9 +1203,6 @@ template<typename V> void Walk(const TypeParamValue &x, V &visitor) {
|
|||
template<typename V> void Walk(const TypeSpec &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V> void Walk(const UseStmt &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
template<typename V> void Walk(const Variable &x, V &visitor) {
|
||||
WalkUnionClass(x, visitor);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue