[LLVMbugs] [Bug 22450] New: clang Parser assertion failure due to typo of sizeof keyword

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Feb 3 15:11:09 PST 2015


http://llvm.org/bugs/show_bug.cgi?id=22450

            Bug ID: 22450
           Summary: clang Parser assertion failure due to typo of sizeof
                    keyword
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: mukai at chromium.org
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 13801
  --> http://llvm.org/bugs/attachment.cgi?id=13801&action=edit
the reproduced c++ file.

% clang++ --version
clang version 3.6.0 (trunk 223108)
Target: x86_64-unknown-linux-gnu
Thread model: posix

The attached file causes a crash of clang++ due to assertion failed.

I've met on my (typo-ed) file but a minimum reproducible file is:
int main(void) {
  return test(sizeo);
}


command-log:

% clang++ foo.cc
foo.cc:2:15: error: use of undeclared identifier 'sizeo'; did you mean
'sizeof'?
  return test(sizeo);
              ^~~~~
              sizeof
clang:
/work/chromium/src/third_party/llvm/tools/clang/include/clang/Parse/Parser.h:283:
clang::SourceLocation clang::Parser::ConsumeToken(): Assertion
`!isTokenSpecial() && "Should consume special tokens with Consume*Token"'
failed.
#0 0x141c848 llvm::sys::PrintStackTrace(_IO_FILE*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x141c848)
#1 0x141de0b
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x141de0b)
#2 0x7fa613920d40 (/lib/x86_64-linux-gnu/libc.so.6+0x36d40)
#3 0x7fa613920cc9 gsignal
/build/buildd/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#4 0x7fa6139240d8 abort /build/buildd/eglibc-2.19/stdlib/abort.c:91:0
#5 0x7fa613919b86 __assert_fail_base
/build/buildd/eglibc-2.19/assert/assert.c:92:0
#6 0x7fa613919c32 (/lib/x86_64-linux-gnu/libc.so.6+0x2fc32)
#7 0x1e19d4d
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e19d4d)
#8 0x1e17504 clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e17504)
#9 0x1e1d764
clang::Parser::ParseExpressionList(llvm::SmallVectorImpl<clang::Expr*>&,
llvm::SmallVectorImpl<clang::SourceLocation>&, void
(clang::Sema::*)(clang::Scope*, clang::Expr*, llvm::ArrayRef<clang::Expr*>),
clang::Expr*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e1d764)
#10 0x1e12430
clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*,
true>)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e12430)
#11 0x1e1708b clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e1708b)
#12 0x1e0ff32
clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e0ff32)
#13 0x1e0fe99 clang::Parser::ParseExpression(clang::Parser::TypeCastState)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e0fe99)
#14 0x1e53a00 clang::Parser::ParseReturnStatement()
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e53a00)
#15 0x1e4e453
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e4e453)
#16 0x1e4db0f
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e4db0f)
#17 0x1e551ef clang::Parser::ParseCompoundStatementBody(bool)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e551ef)
#18 0x1e55b03 clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1e55b03)
#19 0x1dd7b7b clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd7b7b)
#20 0x1de9973 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned
int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1de9973)
#21 0x1dd71ac
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd71ac)
#22 0x1dd6b8c
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd6b8c)
#23 0x1dd5e42
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd5e42)
#24 0x1dd519f
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd519f)
#25 0x1dd0e70 clang::ParseAST(clang::Sema&, bool, bool)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x1dd0e70)
#26 0x15bb91e clang::FrontendAction::Execute()
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x15bb91e)
#27 0x158d35c clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x158d35c)
#28 0x163e7ea clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x163e7ea)
#29 0x6d1b5c cc1_main(llvm::ArrayRef<char const*>, char const*, void*)
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x6d1b5c)
#30 0x6d0589 main
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x6d0589)
#31 0x7fa61390bec5 __libc_start_main
/build/buildd/eglibc-2.19/csu/libc-start.c:321:0
#32 0x6cd52d _start
(/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang+0x6cd52d)
Stack dump:
0.      Program arguments:
/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang -cc1
-triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-main-file-name foo.cc -mrelocation-model static -mthread-model posix
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info
-resource-dir
/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/../lib/clang/3.6.0
-internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
-internal-isystem /usr/local/include -internal-isystem
/ssd/mukai/chromium/src/third_party/llvm-build/Release+Asserts/bin/../lib/clang/3.6.0/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /include -internal-externc-isystem /usr/include
-fdeprecated-macro -fdebug-compilation-dir /tmp -ferror-limit 19
-fmessage-length 259 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/foo-2350c3.o
-x c++ foo.cc 
1.      foo.cc:2:20: current parser token ')'
2.      foo.cc:1:16: parsing function body 'main'
3.      foo.cc:1:16: in compound statement ('{}')
clang: error: unable to execute command: Aborted (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.6.0 (trunk 223108)
Target: x86_64-unknown-linux-gnu
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and
associated run script.
clang: note: diagnostic msg: 
********************

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150203/74eef03f/attachment.html>


More information about the llvm-bugs mailing list