Skip to content

Revert "[clang-repl] Pass triple to IncrementalCompilerBuilder as explicit argument" #84261

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 7, 2024

Conversation

weliveindetail
Copy link
Member

Reverts #84174 due too sanitizer memory leak detection

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:frontend Language frontend issues, e.g. anything involving "Sema" labels Mar 7, 2024
@weliveindetail weliveindetail merged commit 6a39a71 into main Mar 7, 2024
@weliveindetail weliveindetail deleted the revert-84174-clang-repl-triple-arg branch March 7, 2024 00:01
@llvmbot
Copy link
Member

llvmbot commented Mar 7, 2024

@llvm/pr-subscribers-clang

Author: Stefan Gränitz (weliveindetail)

Changes

Reverts llvm/llvm-project#84174 due too sanitizer memory leak detection


Full diff: https://github.com/llvm/llvm-project/pull/84261.diff

4 Files Affected:

  • (modified) clang/include/clang/Interpreter/Interpreter.h (+1-4)
  • (modified) clang/lib/Interpreter/Interpreter.cpp (+5-7)
  • (modified) clang/unittests/Interpreter/CMakeLists.txt (-1)
  • (removed) clang/unittests/Interpreter/IncrementalCompilerBuilderTest.cpp (-35)
diff --git a/clang/include/clang/Interpreter/Interpreter.h b/clang/include/clang/Interpreter/Interpreter.h
index c8f932e95c4798..292fa566ae7037 100644
--- a/clang/include/clang/Interpreter/Interpreter.h
+++ b/clang/include/clang/Interpreter/Interpreter.h
@@ -48,8 +48,6 @@ class IncrementalCompilerBuilder {
     UserArgs = Args;
   }
 
-  void SetTargetTriple(std::string TT) { TargetTriple = TT; }
-
   // General C++
   llvm::Expected<std::unique_ptr<CompilerInstance>> CreateCpp();
 
@@ -64,12 +62,11 @@ class IncrementalCompilerBuilder {
 
 private:
   static llvm::Expected<std::unique_ptr<CompilerInstance>>
-  create(std::string TT, std::vector<const char *> &ClangArgv);
+  create(std::vector<const char *> &ClangArgv);
 
   llvm::Expected<std::unique_ptr<CompilerInstance>> createCuda(bool device);
 
   std::vector<const char *> UserArgs;
-  std::optional<std::string> TargetTriple;
 
   llvm::StringRef OffloadArch;
   llvm::StringRef CudaSDKPath;
diff --git a/clang/lib/Interpreter/Interpreter.cpp b/clang/lib/Interpreter/Interpreter.cpp
index 37696b28976428..9f97a3c6b0be9e 100644
--- a/clang/lib/Interpreter/Interpreter.cpp
+++ b/clang/lib/Interpreter/Interpreter.cpp
@@ -132,8 +132,7 @@ CreateCI(const llvm::opt::ArgStringList &Argv) {
 } // anonymous namespace
 
 llvm::Expected<std::unique_ptr<CompilerInstance>>
-IncrementalCompilerBuilder::create(std::string TT,
-                                   std::vector<const char *> &ClangArgv) {
+IncrementalCompilerBuilder::create(std::vector<const char *> &ClangArgv) {
 
   // If we don't know ClangArgv0 or the address of main() at this point, try
   // to guess it anyway (it's possible on some platforms).
@@ -163,7 +162,8 @@ IncrementalCompilerBuilder::create(std::string TT,
   TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;
   DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagsBuffer);
 
-  driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0], TT, Diags);
+  driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0],
+                        llvm::sys::getProcessTriple(), Diags);
   Driver.setCheckInputsExist(false); // the input comes from mem buffers
   llvm::ArrayRef<const char *> RF = llvm::ArrayRef(ClangArgv);
   std::unique_ptr<driver::Compilation> Compilation(Driver.BuildCompilation(RF));
@@ -185,8 +185,7 @@ IncrementalCompilerBuilder::CreateCpp() {
   Argv.push_back("-xc++");
   Argv.insert(Argv.end(), UserArgs.begin(), UserArgs.end());
 
-  std::string TT = TargetTriple ? *TargetTriple : llvm::sys::getProcessTriple();
-  return IncrementalCompilerBuilder::create(TT, Argv);
+  return IncrementalCompilerBuilder::create(Argv);
 }
 
 llvm::Expected<std::unique_ptr<CompilerInstance>>
@@ -214,8 +213,7 @@ IncrementalCompilerBuilder::createCuda(bool device) {
 
   Argv.insert(Argv.end(), UserArgs.begin(), UserArgs.end());
 
-  std::string TT = TargetTriple ? *TargetTriple : llvm::sys::getProcessTriple();
-  return IncrementalCompilerBuilder::create(TT, Argv);
+  return IncrementalCompilerBuilder::create(Argv);
 }
 
 llvm::Expected<std::unique_ptr<CompilerInstance>>
diff --git a/clang/unittests/Interpreter/CMakeLists.txt b/clang/unittests/Interpreter/CMakeLists.txt
index 0ddedb283e07d1..712641afb976dd 100644
--- a/clang/unittests/Interpreter/CMakeLists.txt
+++ b/clang/unittests/Interpreter/CMakeLists.txt
@@ -7,7 +7,6 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_clang_unittest(ClangReplInterpreterTests
-  IncrementalCompilerBuilderTest.cpp
   IncrementalProcessingTest.cpp
   InterpreterTest.cpp
   CodeCompletionTest.cpp
diff --git a/clang/unittests/Interpreter/IncrementalCompilerBuilderTest.cpp b/clang/unittests/Interpreter/IncrementalCompilerBuilderTest.cpp
deleted file mode 100644
index 1cc0223465c8fa..00000000000000
--- a/clang/unittests/Interpreter/IncrementalCompilerBuilderTest.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//=== unittests/Interpreter/IncrementalCompilerBuilderTest.cpp ------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/Basic/TargetOptions.h"
-#include "clang/Frontend/CompilerInstance.h"
-#include "clang/Interpreter/Interpreter.h"
-#include "llvm/Support/Error.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-using namespace clang;
-
-namespace {
-
-TEST(IncrementalCompilerBuilder, SetCompilerArgs) {
-  std::vector<const char *> ClangArgv = {"-Xclang", "-ast-dump-all"};
-  auto CB = clang::IncrementalCompilerBuilder();
-  CB.SetCompilerArgs(ClangArgv);
-  auto CI = cantFail(CB.CreateCpp());
-  EXPECT_TRUE(CI->getFrontendOpts().ASTDumpAll);
-}
-
-TEST(IncrementalCompilerBuilder, SetTargetTriple) {
-  auto CB = clang::IncrementalCompilerBuilder();
-  CB.SetTargetTriple("armv6-none-eabi");
-  auto CI = cantFail(CB.CreateCpp());
-  EXPECT_EQ(CI->getTargetOpts().Triple, "armv6-none-unknown-eabi");
-}
-
-} // end anonymous namespace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants