[flang] More expression analysis of literal constants.
Original-commit: flang-compiler/f18@3c89dace19fe5585d738fe36fa75fea98e541837
Reviewed-on: https://github.com/flang-compiler/f18/pull/165
Tree-same-pre-rewrite: false
diff --git a/flang/lib/parser/unparse.cc b/flang/lib/parser/unparse.cc
index f9a2019..fa239fd 100644
--- a/flang/lib/parser/unparse.cc
+++ b/flang/lib/parser/unparse.cc
@@ -356,16 +356,7 @@
Outdent(), Word("END ENUM");
}
void Unparse(const BOZLiteralConstant &x) { // R764 - R767
- Put("Z'");
- bool any{false};
- for (int j{60}; j >= 0; j -= 4) {
- int d = (x.v >> j) & 0xf;
- if (d != 0 || any || j == 0) {
- Put(d > 9 ? 'a' + d - 10 : '0' + d);
- any = true;
- }
- }
- Put('\'');
+ Put(x.v);
}
void Unparse(const AcValue::Triplet &x) { // R773
Walk(std::get<0>(x.t)), Put(':'), Walk(std::get<1>(x.t));