[flang] Fix error is Negation on integer
authorTim Keith <tkeith@nvidia.com>
Wed, 5 Dec 2018 21:11:55 +0000 (13:11 -0800)
committerTim Keith <tkeith@nvidia.com>
Thu, 6 Dec 2018 15:16:52 +0000 (07:16 -0800)
The minus sign was missing.

Original-commit: flang-compiler/f18@5fa0a97de5dcdcfeecc3999a1f84dd7858f5b35c
Reviewed-on: https://github.com/flang-compiler/f18/pull/238
Tree-same-pre-rewrite: false

flang/lib/evaluate/tools.cc

index cdd6eb3..f38a236 100644 (file)
@@ -347,7 +347,7 @@ std::optional<Expr<SomeType>> Negation(
             messages.Say("BOZ literal cannot be negated"_err_en_US);
             return NoExpr();
           },
-          [&](Expr<SomeInteger> &&x) { return Package(std::move(x)); },
+          [&](Expr<SomeInteger> &&x) { return Package(-std::move(x)); },
           [&](Expr<SomeReal> &&x) { return Package(-std::move(x)); },
           [&](Expr<SomeComplex> &&x) { return Package(-std::move(x)); },
           [&](Expr<SomeCharacter> &&x) {