Author: Vassil Vassilev Date: 2023-05-08T09:13:00Z New Revision: 743ff9c8bad375d4cea0c44a89cdcc117ffc9bf3
URL: https://github.com/llvm/llvm-project/commit/743ff9c8bad375d4cea0c44a89cdcc117ffc9bf3 DIFF: https://github.com/llvm/llvm-project/commit/743ff9c8bad375d4cea0c44a89cdcc117ffc9bf3.diff LOG: [clang-repl] Do not assert if we have weak references left. Non-incremental Clang can also exit with the WeakRefReferences not empty upon such example. This patch makes clang-repl consistent to what Clang does. Differential revision: https://reviews.llvm.org/D148435 Added: Modified: clang/lib/CodeGen/CodeGenModule.cpp clang/test/Interpreter/execute-weak.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 367f802253e01..7534304b1878f 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -7230,7 +7230,6 @@ void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) { "Newly created module should not have manglings"); NewBuilder->Manglings = std::move(Manglings); - assert(WeakRefReferences.empty() && "Not all WeakRefRefs have been applied"); NewBuilder->WeakRefReferences = std::move(WeakRefReferences); NewBuilder->TBAA = std::move(TBAA); diff --git a/clang/test/Interpreter/execute-weak.cpp b/clang/test/Interpreter/execute-weak.cpp index 5b343512c5456..66f2214ab03c0 100644 --- a/clang/test/Interpreter/execute-weak.cpp +++ b/clang/test/Interpreter/execute-weak.cpp @@ -2,11 +2,17 @@ // RUN: clang-repl "int i = 10;" 'extern "C" int printf(const char*,...);' \ // RUN: 'auto r1 = printf("i = %d\n", i);' | FileCheck --check-prefix=CHECK-DRIVER %s // CHECK-DRIVER: i = 10 +// // UNSUPPORTED: system-aix, system-windows // RUN: cat %s | clang-repl | FileCheck %s + extern "C" int printf(const char *, ...); int __attribute__((weak)) bar() { return 42; } auto r4 = printf("bar() = %d\n", bar()); // CHECK: bar() = 42 +int a = 12; +static __typeof(a) b __attribute__((__weakref__("a"))); +int c = b; + %quit _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits