diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp index 197bffe9c982f..41bc8abf4897f 100644 --- a/lldb/source/Commands/CommandObjectExpression.cpp +++ b/lldb/source/Commands/CommandObjectExpression.cpp @@ -640,9 +640,15 @@ void CommandObjectExpression::DoExecute(llvm::StringRef command, repl_sp->SetValueObjectDisplayOptions(m_varobj_options); } + if (!expr.empty()) { + result.GetOutputStream().Printf( + "Warning: trailing input is ignored in --repl mode\n"); + } + IOHandlerSP io_handler_sp(repl_sp->GetIOHandler()); io_handler_sp->SetIsDone(false); debugger.RunIOHandlerAsync(io_handler_sp); + return; } else { repl_error = Status::FromErrorStringWithFormat( "Couldn't create a REPL for %s", diff --git a/lldb/test/API/repl/clang/TestClangREPL.py b/lldb/test/API/repl/clang/TestClangREPL.py index 97d91d1b8f7a5..ffa598b650937 100644 --- a/lldb/test/API/repl/clang/TestClangREPL.py +++ b/lldb/test/API/repl/clang/TestClangREPL.py @@ -30,8 +30,9 @@ def start_repl(self): self.expect("b main", substrs=["Breakpoint 1", "address ="]) self.expect("run", substrs=["stop reason = breakpoint 1"]) - # Start the REPL. - self.child.send("expression --repl -l c --\n") + # Start the REPL with a harmless trailing input to trigger the warning. + self.child.send("expression --repl -l c -- 3 + 3\n") + self.child.expect_exact("Warning: trailing input is ignored in --repl mode") self.child.expect_exact("1>") # PExpect uses many timeouts internally and doesn't play well