[PATCH] D146809: [clang-repl] Implement pretty printing of custom types.
v.g.vassilev updated this revision to Diff 541061. v.g.vassilev added a comment. Add forgotten file. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146809/new/ https://reviews.llvm.org/D146809 Files: clang/include/clang/Interpreter/Interpreter.h clang/include/clang/Interpreter/PartialTranslationUnit.h clang/include/clang/Interpreter/Value.h clang/lib/Headers/CMakeLists.txt clang/lib/Headers/__clang_interpreter_runtime_printvalue.h clang/lib/Interpreter/CMakeLists.txt clang/lib/Interpreter/DeviceOffload.cpp clang/lib/Interpreter/DeviceOffload.h clang/lib/Interpreter/IncrementalExecutor.cpp clang/lib/Interpreter/IncrementalExecutor.h clang/lib/Interpreter/IncrementalParser.cpp clang/lib/Interpreter/IncrementalParser.h clang/lib/Interpreter/Interpreter.cpp clang/lib/Interpreter/InterpreterUtils.cpp clang/lib/Interpreter/InterpreterUtils.h clang/lib/Interpreter/Value.cpp clang/lib/Interpreter/ValuePrinter.cpp clang/test/Interpreter/pretty-print.cpp clang/tools/clang-repl/CMakeLists.txt clang/tools/clang-repl/ClangRepl.cpp clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp clang/unittests/Interpreter/IncrementalProcessingTest.cpp clang/unittests/Interpreter/InterpreterTest.cpp Index: clang/unittests/Interpreter/InterpreterTest.cpp === --- clang/unittests/Interpreter/InterpreterTest.cpp +++ clang/unittests/Interpreter/InterpreterTest.cpp @@ -29,6 +29,7 @@ #include "gtest/gtest.h" using namespace clang; +using namespace caas; #if defined(_AIX) #define CLANG_INTERPRETER_NO_SUPPORT_EXEC @@ -46,12 +47,12 @@ DiagnosticConsumer *Client = nullptr) { Args ClangArgs = {"-Xclang", "-emit-llvm-only"}; ClangArgs.insert(ClangArgs.end(), ExtraArgs.begin(), ExtraArgs.end()); - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgs); auto CI = cantFail(CB.CreateCpp()); if (Client) CI->getDiagnostics().setClient(Client, /*ShouldOwnClient=*/false); - return cantFail(clang::Interpreter::create(std::move(CI))); + return cantFail(clang::caas::Interpreter::create(std::move(CI))); } static size_t DeclsSize(TranslationUnitDecl *PTUDecl) { Index: clang/unittests/Interpreter/IncrementalProcessingTest.cpp === --- clang/unittests/Interpreter/IncrementalProcessingTest.cpp +++ clang/unittests/Interpreter/IncrementalProcessingTest.cpp @@ -27,6 +27,7 @@ using namespace llvm; using namespace clang; +using namespace clang::caas; namespace { @@ -52,12 +53,12 @@ TEST(IncrementalProcessing, EmitCXXGlobalInitFunc) { std::vector ClangArgv = {"-Xclang", "-emit-llvm-only"}; - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgv); auto CI = cantFail(CB.CreateCpp()); auto Interp = llvm::cantFail(Interpreter::create(std::move(CI))); - std::array PTUs; + std::array PTUs; PTUs[0] = ::cantFail(Interp->Parse(TestProgram1)); ASSERT_TRUE(PTUs[0]->TheModule); Index: clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp === --- clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp +++ clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp @@ -30,6 +30,7 @@ #include "gtest/gtest.h" using namespace clang; +using namespace clang::caas; namespace { using Args = std::vector; @@ -38,12 +39,12 @@ DiagnosticConsumer *Client = nullptr) { Args ClangArgs = {"-Xclang", "-emit-llvm-only"}; ClangArgs.insert(ClangArgs.end(), ExtraArgs.begin(), ExtraArgs.end()); - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgs); auto CI = cantFail(CB.CreateCpp()); if (Client) CI->getDiagnostics().setClient(Client, /*ShouldOwnClient=*/false); - return cantFail(clang::Interpreter::create(std::move(CI))); + return cantFail(clang::caas::Interpreter::create(std::move(CI))); } TEST(InterpreterTest, CatchException) { Index: clang/tools/clang-repl/ClangRepl.cpp === --- clang/tools/clang-repl/ClangRepl.cpp +++ clang/tools/clang-repl/ClangRepl.cpp @@ -97,7 +97,7 @@ return 0; } - clang::IncrementalCompilerBuilder CB; + clang::caas::IncrementalCompilerBuilder CB; CB.SetCompilerArgs(ClangArgv); std::unique_ptr DeviceCI; @@ -132,10 +132,10 @@ if (CudaEnabled) DeviceCI->LoadRequestedPlugins(); - std::unique_ptr Interp; + std::unique_ptr Interp; if (CudaEnabled) { -Interp = ExitOnErr( -clang::Interpreter::createWithCUDA(std::move(CI), std::move(DeviceCI))); +Interp =
[PATCH] D146809: [clang-repl] Implement pretty printing of custom types.
v.g.vassilev added inline comments. Comment at: clang/lib/Headers/__clang_interpreter_runtime_printvalue.h:79 + +template struct is_iterable : std::false_type {}; + aaron.ballman wrote: > Still need to make sure you're using reserved identifiers for these (should > make a pass through the file and get all of the identifiers). Could you check now, I think I fixed all I thought needed fixing. Comment at: clang/lib/Interpreter/ValuePrinter.cpp:164 + +// TODO: Encodings. +static std::string PrintOneChar(char Val) { aaron.ballman wrote: > Not just encodings, but also: how do you handle unprintable characters (like > control characters)? Extended the FIXME. Comment at: clang/lib/Interpreter/ValuePrinter.cpp:543 +default: + llvm_unreachable("Unknown Builtintype kind"); +} aaron.ballman wrote: > This seems rather reachable, no? Do you mean that's not exhaustive list that we list here? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146809/new/ https://reviews.llvm.org/D146809 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D146809: [clang-repl] Implement pretty printing of custom types.
v.g.vassilev updated this revision to Diff 541048. v.g.vassilev marked 5 inline comments as done. v.g.vassilev retitled this revision from "[clang-repl] Implement Value pretty printing" to "[clang-repl] Implement pretty printing of custom types.". v.g.vassilev added a comment. Herald added a subscriber: jvesely. - Address several comments - Make __clang_interpreter_runtime_printvalue.h C++11 compliant. - Support std::vector - Add more tests CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146809/new/ https://reviews.llvm.org/D146809 Files: clang/include/clang/Interpreter/Interpreter.h clang/include/clang/Interpreter/PartialTranslationUnit.h clang/include/clang/Interpreter/Value.h clang/lib/Headers/CMakeLists.txt clang/lib/Headers/__clang_interpreter_runtime_printvalue.h clang/lib/Interpreter/CMakeLists.txt clang/lib/Interpreter/DeviceOffload.cpp clang/lib/Interpreter/DeviceOffload.h clang/lib/Interpreter/IncrementalExecutor.cpp clang/lib/Interpreter/IncrementalExecutor.h clang/lib/Interpreter/IncrementalParser.cpp clang/lib/Interpreter/IncrementalParser.h clang/lib/Interpreter/Interpreter.cpp clang/lib/Interpreter/InterpreterUtils.cpp clang/lib/Interpreter/InterpreterUtils.h clang/lib/Interpreter/Value.cpp clang/test/Interpreter/pretty-print.cpp clang/test/Modules/pr60085.cppm clang/tools/clang-repl/CMakeLists.txt clang/tools/clang-repl/ClangRepl.cpp clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp clang/unittests/Interpreter/IncrementalProcessingTest.cpp clang/unittests/Interpreter/InterpreterTest.cpp Index: clang/unittests/Interpreter/InterpreterTest.cpp === --- clang/unittests/Interpreter/InterpreterTest.cpp +++ clang/unittests/Interpreter/InterpreterTest.cpp @@ -29,6 +29,7 @@ #include "gtest/gtest.h" using namespace clang; +using namespace caas; #if defined(_AIX) #define CLANG_INTERPRETER_NO_SUPPORT_EXEC @@ -46,12 +47,12 @@ DiagnosticConsumer *Client = nullptr) { Args ClangArgs = {"-Xclang", "-emit-llvm-only"}; ClangArgs.insert(ClangArgs.end(), ExtraArgs.begin(), ExtraArgs.end()); - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgs); auto CI = cantFail(CB.CreateCpp()); if (Client) CI->getDiagnostics().setClient(Client, /*ShouldOwnClient=*/false); - return cantFail(clang::Interpreter::create(std::move(CI))); + return cantFail(clang::caas::Interpreter::create(std::move(CI))); } static size_t DeclsSize(TranslationUnitDecl *PTUDecl) { Index: clang/unittests/Interpreter/IncrementalProcessingTest.cpp === --- clang/unittests/Interpreter/IncrementalProcessingTest.cpp +++ clang/unittests/Interpreter/IncrementalProcessingTest.cpp @@ -27,6 +27,7 @@ using namespace llvm; using namespace clang; +using namespace clang::caas; namespace { @@ -52,12 +53,12 @@ TEST(IncrementalProcessing, EmitCXXGlobalInitFunc) { std::vector ClangArgv = {"-Xclang", "-emit-llvm-only"}; - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgv); auto CI = cantFail(CB.CreateCpp()); auto Interp = llvm::cantFail(Interpreter::create(std::move(CI))); - std::array PTUs; + std::array PTUs; PTUs[0] = ::cantFail(Interp->Parse(TestProgram1)); ASSERT_TRUE(PTUs[0]->TheModule); Index: clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp === --- clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp +++ clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp @@ -30,6 +30,7 @@ #include "gtest/gtest.h" using namespace clang; +using namespace clang::caas; namespace { using Args = std::vector; @@ -38,12 +39,12 @@ DiagnosticConsumer *Client = nullptr) { Args ClangArgs = {"-Xclang", "-emit-llvm-only"}; ClangArgs.insert(ClangArgs.end(), ExtraArgs.begin(), ExtraArgs.end()); - auto CB = clang::IncrementalCompilerBuilder(); + auto CB = clang::caas::IncrementalCompilerBuilder(); CB.SetCompilerArgs(ClangArgs); auto CI = cantFail(CB.CreateCpp()); if (Client) CI->getDiagnostics().setClient(Client, /*ShouldOwnClient=*/false); - return cantFail(clang::Interpreter::create(std::move(CI))); + return cantFail(clang::caas::Interpreter::create(std::move(CI))); } TEST(InterpreterTest, CatchException) { Index: clang/tools/clang-repl/ClangRepl.cpp === --- clang/tools/clang-repl/ClangRepl.cpp +++ clang/tools/clang-repl/ClangRepl.cpp @@ -97,7 +97,7 @@ return 0; } - clang::IncrementalCompilerBuilder CB; + clang::caas::IncrementalCompilerBuilder CB; CB.SetCompilerArgs(ClangArgv);