[flang] Remove a needless std::move() call, and be more careful about line continuation.
authorpeter klausler <pklausler@nvidia.com>
Mon, 9 Apr 2018 19:52:52 +0000 (12:52 -0700)
committerpeter klausler <pklausler@nvidia.com>
Mon, 9 Apr 2018 20:49:28 +0000 (13:49 -0700)
Original-commit: flang-compiler/f18@e26421513fd8d55680bf3b5a261c7aee036d9318
Reviewed-on: https://github.com/flang-compiler/f18/pull/48
Tree-same-pre-rewrite: false

flang/lib/parser/prescan.cc

index 4ce764c..1f42903 100644 (file)
@@ -171,7 +171,7 @@ TokenSequence Prescanner::TokenizePreprocessorDirective() {
   }
   inPreprocessorDirective_ = false;
   at_ = saveAt;
-  return {std::move(tokens)};  // TODO: is std::move() necessary?
+  return tokens;
 }
 
 void Prescanner::Say(Message &&message) { messages_.Put(std::move(message)); }
@@ -619,6 +619,9 @@ void Prescanner::SkipCommentLinesAndPreprocessorDirectives() {
     LineClassification line{ClassifyLine(lineStart_)};
     switch (line.kind) {
     case LineClassification::Kind::PreprocessorDirective:
+      if (inPreprocessorDirective_) {
+        return;
+      }
       preprocessor_.Directive(TokenizePreprocessorDirective(), this);
       break;
     case LineClassification::Kind::Comment: NextLine(); break;