[flang] DATA stmt processing (part 4/4): Check & convert DATA
Implement rest of DATA statement semantics and conversion of
DATA statement initializations into static initializers of
objects in their symbol table entries.
Reviewed By: tskeith, PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D82207
diff --git a/flang/lib/Semantics/semantics.cpp b/flang/lib/Semantics/semantics.cpp
index b832721..681e1dc 100644
--- a/flang/lib/Semantics/semantics.cpp
+++ b/flang/lib/Semantics/semantics.cpp
@@ -168,7 +168,11 @@
ComputeOffsets(context);
CheckDeclarations(context);
StatementSemanticsPass1{context}.Walk(program);
- StatementSemanticsPass2{context}.Walk(program);
+ StatementSemanticsPass2 pass2{context};
+ pass2.Walk(program);
+ if (!context.AnyFatalError()) {
+ pass2.CompileDataInitializationsIntoInitializers();
+ }
return !context.AnyFatalError();
}