mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 23:46:05 +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);
|
visitor.Post(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
template<typename V> void Walk(const Fortran::FormatItem &x, V &visitor) {
|
||||||
|
Walk(x.repeatCount, visitor);
|
||||||
|
WalkUnionClass(x, visitor);
|
||||||
|
}
|
||||||
template<typename V>
|
template<typename V>
|
||||||
void Walk(const Fortran::IntrinsicTypeDataEditDesc &x, V &visitor) {
|
void Walk(const Fortran::IntrinsicTypeDataEditDesc &x, V &visitor) {
|
||||||
if (visitor.Pre(x)) {
|
if (visitor.Pre(x)) {
|
||||||
@ -401,6 +405,11 @@ void Walk(const TypeBoundProcedureStmt::WithoutInterface &x, V &visitor) {
|
|||||||
visitor.Post(x);
|
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) {
|
template<typename V> void Walk(const WriteStmt &x, V &visitor) {
|
||||||
if (visitor.Pre(x)) {
|
if (visitor.Pre(x)) {
|
||||||
Walk(x.iounit, visitor);
|
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) {
|
template<typename V> void Walk(const Format &x, V &visitor) {
|
||||||
WalkUnionClass(x, 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) {
|
template<typename V> void Walk(const GenericSpec &x, V &visitor) {
|
||||||
WalkUnionClass(x, 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) {
|
template<typename V> void Walk(const TypeSpec &x, V &visitor) {
|
||||||
WalkUnionClass(x, 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) {
|
template<typename V> void Walk(const Variable &x, V &visitor) {
|
||||||
WalkUnionClass(x, visitor);
|
WalkUnionClass(x, visitor);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user