thurstond wrote:
When I ran the buildbot script, I did reproduce the scary `libc++abi: Pure
virtual function called!` message:
```
******************** TEST 'Clang ::
SemaOpenACC/loop-construct-reduction-clause.cpp' FAILED ********************
Exit Code: 134
Command Output (stderr):
--
/home/thurston/buildbot_repro/llvm_build_hwasan/bin/clang -cc1
-internal-isystem
/home/thurston/buildbot_repro/llvm_build_hwasan/lib/clang/22/include
-nostdsysteminc
/home/thurston/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp
-fopenacc -verify # RUN: at line 1
+ /home/thurston/buildbot_repro/llvm_build_hwasan/bin/clang -cc1
-internal-isystem
/home/thurston/buildbot_repro/llvm_build_hwasan/lib/clang/22/include
-nostdsysteminc
/home/thurston/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp
-fopenacc -verify
libc++abi: Pure virtual function called!
/home/thurston/buildbot_repro/llvm_build_hwasan/tools/clang/test/SemaOpenACC/Output/loop-construct-reduction-clause.cpp.script:
line 1: 1815580 Aborted
/home/thurston/buildbot_repro/llvm_build_hwasan/bin/clang -cc1
-internal-isystem
/home/thurston/buildbot_repro/llvm_build_hwasan/lib/clang/22/include
-nostdsysteminc
/home/thurston/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp
-fopenacc -verify
--
```
but when I tried running the test command, all I get are memory leaks (which
are still worth fixing, but doesn't explain the "pure virtual function" error):
```
Direct leak of 120 byte(s) in 1 object(s) allocated from:
#0 0xc7425bb0c970 in malloc
/home/thurston/llvm-project/compiler-rt/lib/hwasan/hwasan_allocation_functions.cpp:147:3
#1 0xc74262a23140 in safe_malloc
/home/thurston/llvm-project/llvm/include/llvm/Support/MemAlloc.h:26:18
#2 0xc74262a23140 in llvm::SmallVectorBase<unsigned int>::grow_pod(void*,
unsigned long, unsigned long)
/home/thurston/llvm-project/llvm/lib/Support/SmallVector.cpp:151:15
#3 0xc742681d4be0 in grow_pod
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:139:11
#4 0xc742681d4be0 in grow
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:525:41
#5 0xc742681d4be0 in
llvm::SmallVectorImpl<clang::OpenACCReductionRecipe::CombinerRecipe>::operator=(llvm::SmallVectorImpl<clang::OpenACCReductionRecipe::CombinerRecipe>
const&) /home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1036:11
#6 0xc7426a5ed960 in SmallVector
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1238:27
#7 0xc7426a5ed960 in OpenACCReductionRecipe
/home/thurston/llvm-project/clang/include/clang/AST/OpenACCClause.h:1281:8
#8 0xc7426a5ed960 in __uninitialized_copy<clang::OpenACCReductionRecipe,
const clang::OpenACCReductionRecipe *, const clang::OpenACCReductionRecipe *,
clang::OpenACCReductionRecipe *, std::__1::__always_false>
/home/thurston/buildbot_repro/libcxx_install_hwasan/include/c++/v1/__memory/uninitialized_algorithms.h:66:56
#9 0xc7426a5ed960 in uninitialized_copy<const clang::OpenACCReductionRecipe
*, clang::OpenACCReductionRecipe *>
/home/thurston/buildbot_repro/libcxx_install_hwasan/include/c++/v1/__memory/uninitialized_algorithms.h:76:19
#10 0xc7426a5ed960 in
uninitialized_copy<llvm::ArrayRef<clang::OpenACCReductionRecipe> &,
clang::OpenACCReductionRecipe *>
/home/thurston/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2056:10
#11 0xc7426a5ed960 in
clang::OpenACCReductionClause::OpenACCReductionClause(clang::SourceLocation,
clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/include/clang/AST/OpenACCClause.h:1328:5
#12 0xc7426a5ed3f0 in
clang::OpenACCReductionClause::Create(clang::ASTContext const&,
clang::SourceLocation, clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/lib/AST/OpenACCClause.cpp:514:20
#13 0xc742689f1254 in
clang::SemaOpenACC::CheckReductionClause(llvm::ArrayRef<clang::OpenACCClause
const*>, clang::OpenACCDirectiveKind, clang::SourceLocation,
clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/lib/Sema/SemaOpenACCClause.cpp:2228:15
#14 0xc74269143240 in VisitReductionClause
/home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:12394:40
#15 0xc74269143240 in Visit
/home/thurston/llvm-project/clang/include/clang/Basic/OpenACCClauses.def:65:1
#16 0xc74269143240 in TransformOpenACCClause
/home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:12491:13
#17 0xc74269143240 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformOpenACCClauseList(clang::OpenACCDirectiveKind,
llvm::ArrayRef<clang::OpenACCClause const*>)
/home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:12502:57
#18 0xc742691276d8 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformOpenACCLoopConstruct(clang::OpenACCLoopConstruct*)
/home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:12542:20
#19 0xc742690f1224 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) /home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:8028:38
#20 0xc74269128a88 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformOpenACCComputeConstruct(clang::OpenACCComputeConstruct*)
/home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:12526:38
#21 0xc742690f1224 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) /home/thurston/llvm-project/clang/lib/Sema/TreeTransform.h:8028:38
#22 0xc742690bb578 in clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&)
/home/thurston/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4418:23
#23 0xc7426919cef4 in
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool)
/home/thurston/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5892:14
#24 0xc742691a6180 in clang::Sema::PerformPendingInstantiations(bool, bool)
/home/thurston/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:7150:9
#25 0xc74267e60b80 in
clang::Sema::ActOnEndOfTranslationUnitFragment(clang::TUFragmentKind)
/home/thurston/llvm-project/clang/lib/Sema/Sema.cpp:1221:5
#26 0xc74267e618d8 in clang::Sema::ActOnEndOfTranslationUnit()
/home/thurston/llvm-project/clang/lib/Sema/Sema.cpp:1245:5
#27 0xc74267af9644 in
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&,
clang::Sema::ModuleImportState&)
/home/thurston/llvm-project/clang/lib/Parse/Parser.cpp:712:13
#28 0xc74267ad9ef8 in clang::ParseAST(clang::Sema&, bool, bool)
/home/thurston/llvm-project/clang/lib/Parse/ParseAST.cpp:170:20
#29 0xc742647cbef0 in clang::FrontendAction::Execute()
/home/thurston/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1311:3
#30 0xc74264687a18 in
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
/home/thurston/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1008:33
Direct leak of 120 byte(s) in 1 object(s) allocated from:
#0 0xc7425bb0c970 in malloc
/home/thurston/llvm-project/compiler-rt/lib/hwasan/hwasan_allocation_functions.cpp:147:3
#1 0xc74262a23140 in safe_malloc
/home/thurston/llvm-project/llvm/include/llvm/Support/MemAlloc.h:26:18
#2 0xc74262a23140 in llvm::SmallVectorBase<unsigned int>::grow_pod(void*,
unsigned long, unsigned long)
/home/thurston/llvm-project/llvm/lib/Support/SmallVector.cpp:151:15
#3 0xc742681d4be0 in grow_pod
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:139:11
#4 0xc742681d4be0 in grow
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:525:41
#5 0xc742681d4be0 in
llvm::SmallVectorImpl<clang::OpenACCReductionRecipe::CombinerRecipe>::operator=(llvm::SmallVectorImpl<clang::OpenACCReductionRecipe::CombinerRecipe>
const&) /home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1036:11
#6 0xc7426a5ed960 in SmallVector
/home/thurston/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1238:27
#7 0xc7426a5ed960 in OpenACCReductionRecipe
/home/thurston/llvm-project/clang/include/clang/AST/OpenACCClause.h:1281:8
#8 0xc7426a5ed960 in __uninitialized_copy<clang::OpenACCReductionRecipe,
const clang::OpenACCReductionRecipe *, const clang::OpenACCReductionRecipe *,
clang::OpenACCReductionRecipe *, std::__1::__always_false>
/home/thurston/buildbot_repro/libcxx_install_hwasan/include/c++/v1/__memory/uninitialized_algorithms.h:66:56
#9 0xc7426a5ed960 in uninitialized_copy<const clang::OpenACCReductionRecipe
*, clang::OpenACCReductionRecipe *>
/home/thurston/buildbot_repro/libcxx_install_hwasan/include/c++/v1/__memory/uninitialized_algorithms.h:76:19
#10 0xc7426a5ed960 in
uninitialized_copy<llvm::ArrayRef<clang::OpenACCReductionRecipe> &,
clang::OpenACCReductionRecipe *>
/home/thurston/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2056:10
#11 0xc7426a5ed960 in
clang::OpenACCReductionClause::OpenACCReductionClause(clang::SourceLocation,
clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/include/clang/AST/OpenACCClause.h:1328:5
#12 0xc7426a5ed3f0 in
clang::OpenACCReductionClause::Create(clang::ASTContext const&,
clang::SourceLocation, clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/lib/AST/OpenACCClause.cpp:514:20
#13 0xc742689f1254 in
clang::SemaOpenACC::CheckReductionClause(llvm::ArrayRef<clang::OpenACCClause
const*>, clang::OpenACCDirectiveKind, clang::SourceLocation,
clang::SourceLocation, clang::OpenACCReductionOperator,
llvm::ArrayRef<clang::Expr*>, llvm::ArrayRef<clang::OpenACCReductionRecipe>,
clang::SourceLocation)
/home/thurston/llvm-project/clang/lib/Sema/SemaOpenACCClause.cpp:2228:15
#14 0xc74268a136ac in (anonymous
namespace)::SemaOpenACCClauseVisitor::VisitReductionClause(clang::SemaOpenACC::OpenACCParsedClause&)
/home/thurston/llvm-project/clang/lib/Sema/SemaOpenACCClause.cpp:1789:18
#15 0xc742689eb0c8 in Visit
/home/thurston/llvm-project/clang/include/clang/Basic/OpenACCClauses.def:65:1
#16 0xc742689eb0c8 in
clang::SemaOpenACC::ActOnClause(llvm::ArrayRef<clang::OpenACCClause const*>,
clang::SemaOpenACC::OpenACCParsedClause&)
/home/thurston/llvm-project/clang/lib/Sema/SemaOpenACCClause.cpp:1911:35
#17 0xc74267d3ac80 in
clang::Parser::ParseOpenACCClauseParams(llvm::ArrayRef<clang::OpenACCClause
const*>, clang::OpenACCDirectiveKind, clang::OpenACCClauseKind,
clang::SourceLocation)
/home/thurston/llvm-project/clang/lib/Parse/ParseOpenACC.cpp:1266:25
#18 0xc74267d35244 in
clang::Parser::ParseOpenACCClauseList(clang::OpenACCDirectiveKind)
/home/thurston/llvm-project/clang/lib/Parse/ParseOpenACC.cpp:747:39
#19 0xc74267d436ac in clang::Parser::ParseOpenACCDirective()
/home/thurston/llvm-project/clang/lib/Parse/ParseOpenACC.cpp:1576:23
#20 0xc74267d44c58 in clang::Parser::ParseOpenACCDirectiveStmt()
/home/thurston/llvm-project/clang/lib/Parse/ParseOpenACC.cpp:1671:39
#21 0xc74267ca3ea8 in
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*,
clang::ParsedAttributes&, clang::ParsedAttributes&, clang::LabelDecl*)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:466:12
#22 0xc74267ca14e0 in
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*,
clang::LabelDecl*)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:77:20
#23 0xc74267cbb3c0 in clang::Parser::ParseCompoundStatementBody(bool)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:1168:11
#24 0xc74267cc1788 in operator()
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:968:9
#25 0xc74267cc1788 in void llvm::function_ref<void
()>::callback_fn<clang::Parser::ParseCompoundStatement(bool, unsigned
int)::$_0>(long)
/home/thurston/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#26 0xc7426407ae58 in operator()
/home/thurston/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#27 0xc7426407ae58 in runWithSufficientStackSpace
/home/thurston/llvm-project/clang/include/clang/Basic/Stack.h:49:7
#28 0xc7426407ae58 in
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
llvm::function_ref<void ()>)
/home/thurston/llvm-project/clang/lib/Basic/StackExhaustionHandler.cpp:20:3
#29 0xc74267ca5158 in ParseCompoundStatement
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:967:16
#30 0xc74267ca5158 in ParseCompoundStatement
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:953:10
#31 0xc74267ca5158 in
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*,
clang::ParsedAttributes&, clang::ParsedAttributes&, clang::LabelDecl*)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:275:12
#32 0xc74267ca14e0 in
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*,
clang::LabelDecl*)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:77:20
#33 0xc74267ca10ec in clang::Parser::ParseStatement(clang::SourceLocation*,
clang::Parser::ParsedStmtContext, clang::LabelDecl*)
/home/thurston/llvm-project/clang/lib/Parse/ParseStmt.cpp:48:11
SUMMARY: HWAddressSanitizer: 240 byte(s) leaked in 2 allocation(s).
```
(The x86 ASan bot [https://lab.llvm.org/buildbot/#/builders/52/builds/11843] is
also able to reproduce the leaks.)
https://github.com/llvm/llvm-project/pull/162740
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits