Issue 61419
Summary Assertion failed: (!hasObjCLifetime()), function addObjCLifetime
Labels new issue
Assignees
Reporter ahatanak
    $  cat test.mm
```
@class MyClass;

template <class T, class T1> struct pair {
  T first;
 T1 second;
};

MyClass *p0, *p1;
const pair<MyClass *, MyClass *> p = {p0, p1};
bool b;
MyClass *const t = b ? p.first : p.second;
```

$ clang++ -fobjc-arc -std=c++11 -c -o /dev/null test.mm
```
0  clang-16                 0x0000000102fd6678 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 80
1  clang-16 0x0000000102fd6c1c PrintStackTraceSignalHandler(void*) + 28
2 clang-16                 0x0000000102fd4b30 llvm::sys::RunSignalHandlers() + 152
3  clang-16                 0x0000000102fd5e28 llvm::sys::CleanupOnSignal(unsigned long) + 116
4  clang-16 0x0000000102e60504 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) + 180
5  clang-16                 0x0000000102e609d4 CrashRecoverySignalHandler(int) + 236
6  libsystem_platform.dylib 0x00000001900872a4 _sigtramp + 56
7  libsystem_pthread.dylib 0x0000000190058cec pthread_kill + 288
8  libsystem_c.dylib 0x000000018ff922b8 abort + 180
9  libsystem_c.dylib 0x000000018ff91610 err + 0
10 clang-16                 0x000000010896f364 clang::Qualifiers::addObjCLifetime(clang::Qualifiers::ObjCLifetime) + 132
11 clang-16                 0x000000010896f2cc clang::Qualifiers::addQualifiers(clang::Qualifiers) + 220
12 clang-16 0x000000010896f078 clang::Qualifiers::operator+=(clang::Qualifiers) + 52
13 clang-16 0x0000000108936a20 unwrapSugar(clang::SplitQualType&, clang::Qualifiers&) + 96
14 clang-16                 0x00000001089365ec clang::ASTContext::getCommonSugaredType(clang::QualType, clang::QualType, bool) + 396
15 clang-16                 0x0000000107b31d5c clang::Sema::CXXCheckConditionalOperands(clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ExprValueKind&, clang::ExprObjectKind&, clang::SourceLocation) + 3012
16 clang-16 0x000000010781b350 clang::Sema::CheckConditionalOperands(clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::ExprValueKind&, clang::ExprObjectKind&, clang::SourceLocation) + 316
17 clang-16 0x000000010780cf94 clang::Sema::ActOnConditionalOp(clang::SourceLocation, clang::SourceLocation, clang::Expr*, clang::Expr*, clang::Expr*) + 1276
18 clang-16 0x0000000106f24f18 clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) + 4608
19 clang-16 0x0000000106f23d00 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) + 308
20 clang-16                 0x0000000106f09170 clang::Parser::ParseInitializer() + 56
21 clang-16 0x0000000106eddb10 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) + 1956
22 clang-16                 0x0000000106edb9b8 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1936
23 clang-16 0x0000000106fc4984 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) + 1600
24 clang-16                 0x0000000106fc3ea8 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) + 168
25 clang-16                 0x0000000106fc2f30 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) + 3220
26 clang-16 0x0000000106fc0e54 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) + 2016
27 clang-16 0x0000000106ec9f80 clang::ParseAST(clang::Sema&, bool, bool) + 684
28 clang-16                 0x00000001044e7dbc clang::ASTFrontendAction::ExecuteAction() + 296
29 clang-16 0x0000000103d90f70 clang::CodeGenAction::ExecuteAction() + 92
30 clang-16 0x00000001044e752c clang::FrontendAction::Execute() + 124
31 clang-16                 0x00000001043eb04c clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 824
32 clang-16                 0x00000001046056c8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1060
33 clang-16                 0x00000001002cdaac cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1240
34 clang-16 0x00000001002b7730 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) + 408
35 clang-16                 0x0000000104191538 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_1::operator()() const + 40
36 clang-16                 0x0000000104191504 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_1>(long) + 24
37 clang-16 0x0000000102e603a4 llvm::function_ref<void ()>::operator()() const + 32
38 clang-16                 0x0000000102e60328 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 260
39 clang-16                 0x000000010418d578 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const + 380
40 clang-16 0x000000010412809c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 716
41 clang-16 0x0000000104128328 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const + 160
42 clang-16                 0x0000000104144584 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) + 492
43 clang-16                 0x00000001002b6bb4 clang_main(int, char**) + 3848
44 clang-16                 0x00000001002f2c30 main + 36
45 dyld 0x000000018fd2fe50 start + 2544
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to