Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion failure after trying to declare _Nt_checked[0] #1129

Open
secure-sw-dev-bot opened this issue Jan 17, 2022 · 0 comments
Open

Assertion failure after trying to declare _Nt_checked[0] #1129

secure-sw-dev-bot opened this issue Jan 17, 2022 · 0 comments
Labels
bug Something isn't working priority:2

Comments

@secure-sw-dev-bot
Copy link

This issue was copied from checkedc/checkedc-clang#1130


void buz(void) {
  char foo _Nt_checked[0];
  (void) foo;
}
clang: /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4321: clang::BoundsExpr* {anonymous}::CheckBoundsDeclarations::CreateBoundsForArrayType(clang::QualType): Assertion `size.uge(1) && "must have at least one element"' failed.
PLEASE submit a bug report to https://github.com/Microsoft/checkedc-clang/issues and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: clang -c crash.c 
1.	<eof> parser at end of file
2.	crash.c:1:16: parsing function body 'buz'
 #0 0x00005579a1652205 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/cc/checkedc-clang/llvm/build/../lib/Support/Unix/Signals.inc:564:22
 #1 0x00005579a165229c PrintStackTraceSignalHandler(void*) /home/cc/checkedc-clang/llvm/build/../lib/Support/Unix/Signals.inc:625:1
 #2 0x00005579a164ffef llvm::sys::RunSignalHandlers() /home/cc/checkedc-clang/llvm/build/../lib/Support/Signals.cpp:68:20
 #3 0x00005579a1651a0b llvm::sys::CleanupOnSignal(unsigned long) /home/cc/checkedc-clang/llvm/build/../lib/Support/Unix/Signals.inc:361:31
 #4 0x00005579a157dc72 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/cc/checkedc-clang/llvm/build/../lib/Support/CrashRecoveryContext.cpp:77:5
 #5 0x00005579a157e164 CrashRecoverySignalHandler(int) /home/cc/checkedc-clang/llvm/build/../lib/Support/CrashRecoveryContext.cpp:383:1
 #6 0x00007f0cb51d2420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x15420)
 #7 0x00007f0cb4c7118b raise /build/glibc-YbNSs7/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #8 0x00007f0cb4c50859 abort /build/glibc-YbNSs7/glibc-2.31/stdlib/abort.c:81:7
 #9 0x00007f0cb4c50729 get_sysdep_segment_value /build/glibc-YbNSs7/glibc-2.31/intl/loadmsgcat.c:509:8
#10 0x00007f0cb4c50729 _nl_load_domain /build/glibc-YbNSs7/glibc-2.31/intl/loadmsgcat.c:970:34
#11 0x00007f0cb4c61f36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
#12 0x00005579a4cc48cd (anonymous namespace)::CheckBoundsDeclarations::CreateBoundsForArrayType(clang::QualType) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4321:9
#13 0x00005579a4cc4e82 (anonymous namespace)::CheckBoundsDeclarations::ArrayExprBounds(clang::Expr*) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4426:48
#14 0x00005579a4cc41e2 (anonymous namespace)::CheckBoundsDeclarations::CheckDeclRefExpr(clang::DeclRefExpr*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4151:33
#15 0x00005579a4cbff7e (anonymous namespace)::CheckBoundsDeclarations::CheckLValue(clang::Expr*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:3105:67
#16 0x00005579a4cc4f80 (anonymous namespace)::CheckBoundsDeclarations::InferBounds(clang::Expr*, clang::CheckedScopeSpecifier, clang::BoundsExpr*&, clang::BoundsExpr*&, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4448:22
#17 0x00005579a4cc1c60 (anonymous namespace)::CheckBoundsDeclarations::CheckCastExpr(clang::CastExpr*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:3606:29
#18 0x00005579a4cbfc88 (anonymous namespace)::CheckBoundsDeclarations::Check(clang::Stmt*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:3020:39
#19 0x00005579a4cc4fb0 (anonymous namespace)::CheckBoundsDeclarations::InferBounds(clang::Expr*, clang::CheckedScopeSpecifier, clang::BoundsExpr*&, clang::BoundsExpr*&, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:4450:22
#20 0x00005579a4cc1c60 (anonymous namespace)::CheckBoundsDeclarations::CheckCastExpr(clang::CastExpr*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:3606:29
#21 0x00005579a4cbfc88 (anonymous namespace)::CheckBoundsDeclarations::Check(clang::Stmt*, clang::CheckedScopeSpecifier, (anonymous namespace)::CheckingState&) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:3020:39
#22 0x00005579a4cbf78b (anonymous namespace)::CheckBoundsDeclarations::TraverseCFG(clang::AvailableFactsAnalysis&, clang::FunctionDecl*) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:2896:17
#23 0x00005579a4ccbb6e clang::Sema::CheckFunctionBodyBoundsDecls(clang::FunctionDecl*, clang::Stmt*) /home/cc/checkedc-clang/clang/lib/Sema/SemaBounds.cpp:6314:54
#24 0x00005579a541d612 clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*, bool) /home/cc/checkedc-clang/clang/lib/Sema/SemaDecl.cpp:15470:9
#25 0x00005579a541ce49 clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*) /home/cc/checkedc-clang/clang/lib/Sema/SemaDecl.cpp:15406:1
#26 0x00005579a492f019 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&, clang::CheckedScopeSpecifier) /home/cc/checkedc-clang/clang/lib/Parse/ParseStmt.cpp:2331:41
#27 0x00005579a4887d26 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:1400:36
#28 0x00005579a489f92d clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/cc/checkedc-clang/clang/lib/Parse/ParseDecl.cpp:2013:36
#29 0x00005579a4886a08 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:1138:59
#30 0x00005579a4886afb clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:1154:57
#31 0x00005579a4885e65 clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (.localalias) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:956:58
#32 0x00005579a4884fbe clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:704:42
#33 0x00005579a488495d clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) /home/cc/checkedc-clang/clang/lib/Parse/Parser.cpp:572:43
#34 0x00005579a4880890 clang::ParseAST(clang::Sema&, bool, bool) /home/cc/checkedc-clang/clang/lib/Parse/ParseAST.cpp:157:47
#35 0x00005579a2589067 clang::ASTFrontendAction::ExecuteAction() /home/cc/checkedc-clang/clang/lib/Frontend/FrontendAction.cpp:1057:11
#36 0x00005579a2739f93 clang::CodeGenAction::ExecuteAction() /home/cc/checkedc-clang/clang/lib/CodeGen/CodeGenAction.cpp:1185:1
#37 0x00005579a25889be clang::FrontendAction::Execute() /home/cc/checkedc-clang/clang/lib/Frontend/FrontendAction.cpp:954:38
#38 0x00005579a24bfcb1 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/cc/checkedc-clang/clang/lib/Frontend/CompilerInstance.cpp:984:42
#39 0x00005579a2726146 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/cc/checkedc-clang/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:38
#40 0x000055799fc2544b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/cc/checkedc-clang/clang/tools/driver/cc1_main.cpp:240:40
#41 0x000055799fc1a313 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /home/cc/checkedc-clang/clang/tools/driver/driver.cpp:330:20
#42 0x00005579a23b2f2d clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()::operator()() const /home/cc/checkedc-clang/clang/lib/Driver/Job.cpp:400:32
#43 0x00005579a23b37f6 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) /home/cc/checkedc-clang/llvm/include/llvm/ADT/STLExtras.h:186:40
#44 0x00005579a156f910 llvm::function_ref<void ()>::operator()() const /home/cc/checkedc-clang/llvm/build/../include/llvm/ADT/STLExtras.h:203:62
#45 0x00005579a157e376 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/cc/checkedc-clang/llvm/build/../lib/Support/CrashRecoveryContext.cpp:419:10
#46 0x00005579a23b3155 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const /home/cc/checkedc-clang/clang/lib/Driver/Job.cpp:400:7
#47 0x00005579a23629fb clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const /home/cc/checkedc-clang/clang/lib/Driver/Compilation.cpp:195:22
#48 0x00005579a2362d5e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const /home/cc/checkedc-clang/clang/lib/Driver/Compilation.cpp:246:53
#49 0x00005579a2372c0e clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) /home/cc/checkedc-clang/clang/lib/Driver/Driver.cpp:1509:28
#50 0x000055799fc1b2e7 main /home/cc/checkedc-clang/clang/tools/driver/driver.cpp:502:39
#51 0x00007f0cb4c520b3 __libc_start_main /build/glibc-YbNSs7/glibc-2.31/csu/../csu/libc-start.c:342:3
#52 0x000055799fc189ae _start (/home/cc/checkedc-clang/llvm/build/bin/clang-11+0x7a719ae)
@secure-sw-dev-bot secure-sw-dev-bot added bug Something isn't working priority:2 labels Jan 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working priority:2
Projects
None yet
Development

No branches or pull requests

1 participant