mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 22:06:06 +00:00
[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…
x
Reference in New Issue
Block a user