[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

LLVM Continuous Integration via cfe-commits cfe-commits at lists.llvm.org
Thu May 22 12:58:44 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `clang-aarch64-quick` running on `linaro-clang-aarch64-quick` while building `clang-tools-extra,clang,lldb` at step 4 "build stage 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/65/builds/17038

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 4 (build stage 1) failure: 'ninja' (failure)
...
[879/1636] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ShowEnabledWarnings.cpp.o
[880/1636] Building CXX object tools/clang/tools/clang-refactor/CMakeFiles/clang-refactor.dir/ClangRefactor.cpp.o
[881/1636] Building CXX object tools/clang/tools/extra/clang-tidy/CMakeFiles/obj.clangTidy.dir/ClangTidyDiagnosticConsumer.cpp.o
[882/1636] Building CXX object tools/clang/tools/extra/clang-tidy/android/CMakeFiles/obj.clangTidyAndroidModule.dir/CloexecAcceptCheck.cpp.o
[883/1636] Building CXX object tools/clang/lib/Format/CMakeFiles/obj.clangFormat.dir/Format.cpp.o
[884/1636] Building CXX object tools/clang/tools/extra/clang-tidy/android/CMakeFiles/obj.clangTidyAndroidModule.dir/CloexecCreatCheck.cpp.o
[885/1636] Building CXX object tools/clang/tools/clang-installapi/CMakeFiles/clang-installapi.dir/ClangInstallAPI.cpp.o
[886/1636] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o
[887/1636] Building CXX object tools/clang/tools/extra/modularize/CMakeFiles/modularize.dir/ModularizeUtilities.cpp.o
[888/1636] Building CXX object tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o
FAILED: tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o 
/usr/local/bin/c++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/tools/clang-fuzzer/handle-cxx -I/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang/tools/clang-fuzzer/handle-cxx -I/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang/include -I/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/include -I/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/include -I/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/llvm/include -I/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang/tools/clang-fuzzer/handle-cxx/. -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o -MF tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o.d -o tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o -c /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp
../llvm/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp:36:21: error: no matching constructor for initialization of 'DiagnosticsEngine'
   36 |   DiagnosticsEngine Diagnostics(
      |                     ^
   37 |       IntrusiveRefCntPtr<clang::DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   38 |       &Diags, false);
      |       ~~~~~~~~~~~~~
../llvm/clang/include/clang/Basic/Diagnostic.h:568:12: note: candidate constructor not viable: no known conversion from 'clang::DiagnosticOptions *' to 'DiagnosticOptions &' for 2nd argument; remove &
  568 |   explicit DiagnosticsEngine(IntrusiveRefCntPtr<DiagnosticIDs> Diags,
      |            ^
  569 |                              DiagnosticOptions &DiagOpts,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~
../llvm/clang/include/clang/Basic/Diagnostic.h:572:3: note: candidate constructor not viable: requires 1 argument, but 4 were provided
  572 |   DiagnosticsEngine(const DiagnosticsEngine &) = delete;
      |   ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../llvm/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp:15:
In file included from ../llvm/clang/include/clang/CodeGen/CodeGenAction.h:12:
In file included from ../llvm/clang/include/clang/Frontend/FrontendAction.h:23:
In file included from ../llvm/clang/include/clang/Frontend/ASTUnit.h:17:
In file included from ../llvm/clang/include/clang/AST/ASTContext.h:18:
In file included from ../llvm/clang/include/clang/AST/CanonicalType.h:17:
In file included from ../llvm/clang/include/clang/AST/Type.h:21:
In file included from ../llvm/clang/include/clang/AST/NestedNameSpecifier.h:18:
In file included from ../llvm/clang/include/clang/Basic/Diagnostic.h:17:
In file included from ../llvm/clang/include/clang/Basic/DiagnosticIDs.h:19:
../llvm/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:163:37: error: no member named 'Retain' in 'clang::DiagnosticOptions'
  163 |   static void retain(T *obj) { obj->Retain(); }
      |                                ~~~  ^
../llvm/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:228:34: note: in instantiation of member function 'llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticOptions>::retain' requested here
  228 |       IntrusiveRefCntPtrInfo<T>::retain(Obj);
      |                                  ^
../llvm/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:180:43: note: in instantiation of member function 'llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::retain' requested here
  180 |   IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
      |                                           ^
../llvm/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp:35:52: note: in instantiation of member function 'llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr' requested here
   35 |   IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
      |                                                    ^

```

</details>

https://github.com/llvm/llvm-project/pull/139584


More information about the cfe-commits mailing list