[PATCH] D136886: [clang] ASTImporter: Fix importing of va_list types and declarations

Balázs Kéri via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 7 06:31:23 PST 2022


balazske added a comment.

There is a problem in one of the tests with `DontModifyStdNamespaceCheck`:

  ******************** TEST 'Clang Tools :: clang-tidy/checkers/cert/dcl58-cpp.cpp' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /usr/bin/python3.8 /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/../test/clang-tidy/check_clang_tidy.py -std=c++17-or-later /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/clang-tidy/checkers/cert/dcl58-cpp.cpp cert-dcl58-cpp /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/tools/extra/test/clang-tidy/checkers/cert/Output/dcl58-cpp.cpp.tmp -- -- -I /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/../test/clang-tidy/checkers/Inputs/Headers
  --
  Exit Code: 1
  Command Output (stdout):
  --
  Running ['clang-tidy', '/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/tools/extra/test/clang-tidy/checkers/cert/Output/dcl58-cpp.cpp.tmp.cpp', '-fix', '--checks=-*,cert-dcl58-cpp', '-config={}', '--', '-I', '/home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/../test/clang-tidy/checkers/Inputs/Headers', '-std=c++17', '-nostdinc++']...
  clang-tidy /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/tools/extra/test/clang-tidy/checkers/cert/Output/dcl58-cpp.cpp.tmp.cpp -fix --checks=-*,cert-dcl58-cpp -config={} -- -I /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/../test/clang-tidy/checkers/Inputs/Headers -std=c++17 -nostdinc++ failed:
  clang-tidy: ../llvm/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp:177: clang::DiagnosticBuilder clang::tidy::ClangTidyContext::diag(llvm::StringRef, clang::SourceLocation, llvm::StringRef, DiagnosticIDs::Level): Assertion `Loc.isValid()' failed.
  PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
  Stack dump:
  0.	Program arguments: clang-tidy /home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/tools/clang/tools/extra/test/clang-tidy/checkers/cert/Output/dcl58-cpp.cpp.tmp.cpp -fix --checks=-*,cert-dcl58-cpp -config={} -- -I /home/tcwg-buildbot/worker/clang-aarch64-quick/llvm/clang-tools-extra/test/../test/clang-tidy/checkers/Inputs/Headers -std=c++17 -nostdinc++
  1.	<eof> parser at end of file
  2.	ASTMatcher: Processing 'cert-dcl58-cpp' against:
  	CXXRecordDecl std::__va_list : <<invalid sloc>>
  --- Bound Nodes Begin ---
      decl - { CXXRecordDecl std::__va_list : <<invalid sloc>> }
      nmspc - { NamespaceDecl std : <<invalid sloc>> }
  --- Bound Nodes End ---
   #0 0x0000aaaacd9fe54c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x352554c)
   #1 0x0000aaaacd9fc664 llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x3523664)
   #2 0x0000aaaacd9fead8 SignalHandler(int) Signals.cpp:0:0
   #3 0x0000ffffbe3e05c0 (linux-vdso.so.1+0x5c0)
   #4 0x0000ffffbdec1d78 raise /build/glibc-RIFKjK/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
   #5 0x0000ffffbdeaeaac abort /build/glibc-RIFKjK/glibc-2.31/stdlib/abort.c:81:7
   #6 0x0000ffffbdebb490 __assert_fail_base /build/glibc-RIFKjK/glibc-2.31/assert/assert.c:89:7
   #7 0x0000ffffbdebb4f4 (/lib/aarch64-linux-gnu/libc.so.6+0x2d4f4)
   #8 0x0000aaaacb809afc clang::tidy::ClangTidyContext::diag(llvm::StringRef, clang::SourceLocation, llvm::StringRef, clang::DiagnosticIDs::Level) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x1330afc)
   #9 0x0000aaaacb2d18a4 clang::tidy::cert::DontModifyStdNamespaceCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0xdf88a4)
  #10 0x0000aaaaccd1bad8 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::MatchVisitor::visitMatch(clang::ast_matchers::BoundNodes const&) ASTMatchFinder.cpp:0:0
  #11 0x0000aaaaccd51b8c clang::ast_matchers::internal::BoundNodesTreeBuilder::visitMatches(clang::ast_matchers::internal::BoundNodesTreeBuilder::Visitor*) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x2878b8c)
  #12 0x0000aaaaccd1b170 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchWithFilter(clang::DynTypedNode const&) ASTMatchFinder.cpp:0:0
  #13 0x0000aaaaccd1e5f0 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
  #14 0x0000aaaaccd20c80 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseNamespaceDecl(clang::NamespaceDecl*) ASTMatchFinder.cpp:0:0
  #15 0x0000aaaaccd1e790 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
  #16 0x0000aaaaccd2820c clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseTranslationUnitDecl(clang::TranslationUnitDecl*) ASTMatchFinder.cpp:0:0
  #17 0x0000aaaaccd1ecb8 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
  #18 0x0000aaaaccce9ff8 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x2810ff8)
  #19 0x0000aaaacbede4f0 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x1a054f0)
  #20 0x0000aaaacc0ba9d8 clang::ParseAST(clang::Sema&, bool, bool) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x1be19d8)
  #21 0x0000aaaacbea352c clang::FrontendAction::Execute() (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x19ca52c)
  #22 0x0000aaaacbe2c40c clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x195340c)
  #23 0x0000aaaacb8342f0 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x135b2f0)
  #24 0x0000aaaacb7ffdac clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef)::ActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) ClangTidy.cpp:0:0
  #25 0x0000aaaacb833fe0 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x135afe0)
  #26 0x0000aaaacb832b78 clang::tooling::ToolInvocation::run() (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x1359b78)
  #27 0x0000aaaacb835a90 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x135ca90)
  #28 0x0000aaaacb7fba74 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0x1322a74)
  #29 0x0000aaaacb0c6598 clang::tidy::clangTidyMain(int, char const**) (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0xbed598)
  #30 0x0000ffffbdeaee10 __libc_start_main /build/glibc-RIFKjK/glibc-2.31/csu/../csu/libc-start.c:342:3
  #31 0x0000aaaacb0c16a8 _start (/home/tcwg-buildbot/worker/clang-aarch64-quick/stage1/bin/clang-tidy+0xbe86a8)

Likely the `unless(isImplicit())` should be added to some of the AST matchers in the test.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136886/new/

https://reviews.llvm.org/D136886



More information about the cfe-commits mailing list