[PATCH] D96033: [clang-repl] Land initial infrastructure for incremental parsing

Vassil Vassilev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun May 16 11:27:07 PDT 2021


v.g.vassilev added a comment.

In D96033#2762134 <https://reviews.llvm.org/D96033#2762134>, @hubert.reinterpretcast wrote:

> In D96033#2762056 <https://reviews.llvm.org/D96033#2762056>, @v.g.vassilev wrote:
>
>> IIUC, AIX has a default `fno-integrated-as` and I am still puzzled (and cannot find the relevant code) what is the program action kind for AIX in that case (`frontend::???`).
>
> This is rooted in `IsIntegratedAssemblerDefault` and the relevant code is more a relevant //lack// of code. The default implementation, `ToolChain::IsIntegratedAssemblerDefault`, returns `false`.
>
>> Maybe applying that diff can give us a hint:
>
> Output is:
>
>   $ cat /home/hstong/.Liodine/llvmproj/clang/test/Interpreter/execute.cpp | /home/hstong/.Nrtphome/.Liodine/llcrossbld/dev/build/bin/clang-repl
>   ActionKind=7
>   clang-repl: Driver initialization failed. Incremental mode for action is not supported

Thanks!

That patch should probably get us to a point where we can mark the test as `XFAIL: system-aix`

  diff --git a/clang/lib/Interpreter/IncrementalParser.cpp b/clang/lib/Interpreter/IncrementalParser.cpp
  index 70baabfeb8fb..84b4d779d43c 100644
  --- a/clang/lib/Interpreter/IncrementalParser.cpp
  +++ b/clang/lib/Interpreter/IncrementalParser.cpp
  @@ -54,7 +54,8 @@ public:
               Err = llvm::createStringError(
                   std::errc::state_not_recoverable,
                   "Driver initialization failed. "
  -                "Incremental mode for action is not supported");
  +                "Incremental mode for action %d is not supported",
  +                CI.getFrontendOpts().ProgramAction);
               return Act;
             case frontend::ASTDump:
               LLVM_FALLTHROUGH;
  @@ -63,6 +64,8 @@ public:
             case frontend::ParseSyntaxOnly:
               Act = CreateFrontendAction(CI);
               break;
  +          case frontend::EmitAssembly:
  +            LLVM_FALLTHROUGH;
             case frontend::EmitObj:
               LLVM_FALLTHROUGH;
             case frontend::EmitLLVMOnly:

If that works on your platform I will happily open a review for the changes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96033/new/

https://reviews.llvm.org/D96033



More information about the cfe-commits mailing list