[LLVMbugs] [Bug 19630] New: Assertion `StartColNo <= EndColNo && "Trying to highlight whitespace??"'

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu May 1 16:31:13 PDT 2014


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

            Bug ID: 19630
           Summary: Assertion `StartColNo <= EndColNo && "Trying to
                    highlight whitespace??"'
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: nlewycky at google.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Testcase:
class { template

Run with: clang -cc1 -x c++ b.ii

b.ii:1:28: error: expected member name or ';' after declaration specifiers
clang: TextDiagnostic.cpp:979: void highlightRange(const
clang::CharSourceRange&, unsigned int, clang::FileID, const
{anonymous}::SourceColumnMap&, std::string&, const clang::SourceManager&, const
clang::LangOptions&): Assertion `StartColNo <= EndColNo && "Trying to highlight
whitespace??"' failed.
0  clang           0x0000000003a13bd1 llvm::sys::PrintStackTrace(_IO_FILE*) +
38
1  clang           0x0000000003a13e4e
2  clang           0x0000000003a137d9
3  libpthread.so.0 0x00007fa71ca23cb0
4  libc.so.6       0x00007fa71bd5b425 gsignal + 53
5  libc.so.6       0x00007fa71bd5eb8b abort + 379
6  libc.so.6       0x00007fa71bd540ee
7  libc.so.6       0x00007fa71bd54192
8  clang           0x00000000010d3689
9  clang           0x00000000010d3f81
clang::TextDiagnostic::emitSnippetAndCaret(clang::SourceLocation,
clang::DiagnosticsEngine::Level,
llvm::SmallVectorImpl<clang::CharSourceRange>&,
llvm::ArrayRef<clang::FixItHint>, clang::SourceManager const&) + 935
10 clang           0x00000000010cfd6d
11 clang           0x00000000010c5fbc
clang::DiagnosticRenderer::emitCaret(clang::SourceLocation,
clang::DiagnosticsEngine::Level, llvm::ArrayRef<clang::CharSourceRange>,
llvm::ArrayRef<clang::FixItHint>, clang::SourceManager const&) + 140
12 clang           0x00000000010c53dc
clang::DiagnosticRenderer::emitDiagnostic(clang::SourceLocation,
clang::DiagnosticsEngine::Level, llvm::StringRef,
llvm::ArrayRef<clang::CharSourceRange>, llvm::ArrayRef<clang::FixItHint>,
clang::SourceManager const*, llvm::PointerUnion<clang::Diagnostic const*,
clang::StoredDiagnostic const*>) + 950
13 clang           0x0000000001029e30
clang::TextDiagnosticPrinter::HandleDiagnostic(clang::DiagnosticsEngine::Level,
clang::Diagnostic const&) + 994
14 clang           0x0000000002649695
clang::DiagnosticIDs::EmitDiag(clang::DiagnosticsEngine&,
clang::DiagnosticIDs::Level) const + 113
15 clang           0x0000000002649618
clang::DiagnosticIDs::ProcessDiag(clang::DiagnosticsEngine&) const + 728
16 clang           0x0000000002640635
17 clang           0x00000000026421c8
clang::DiagnosticsEngine::EmitCurrentDiagnostic(bool) + 230
18 clang           0x0000000000f829b4
19 clang           0x0000000000f829e2
20 clang           0x0000000001518535
clang::Parser::ParseDirectDeclarator(clang::Declarator&) + 2723
21 clang           0x000000000151728a
clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void
(clang::Parser::*)(clang::Declarator&)) + 1134
22 clang           0x0000000001516dc4
clang::Parser::ParseDeclarator(clang::Declarator&) + 50
23 clang           0x00000000015261ac
clang::Parser::ParseCXXMemberDeclaratorBeforeInitializer(clang::Declarator&,
clang::VirtSpecifiers&, clang::ActionResult<clang::Expr*, true>&,
clang::Parser::LateParsedAttrList&) + 96
24 clang           0x0000000001526df6
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&,
clang::ParsingDeclRAIIObject*) + 2652
25 clang           0x000000000156aa95
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 159
26 clang           0x000000000156e31d
clang::Parser::ParseExplicitInstantiation(unsigned int, clang::SourceLocation,
clang::SourceLocation, clang::SourceLocation&, clang::AccessSpecifier) + 167
27 clang           0x000000000156a5a1
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 175
28 clang           0x000000000152689a
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&,
clang::ParsingDeclRAIIObject*) + 1280
29 clang           0x0000000001528de1
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation,
clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int,
clang::Decl*) + 3217
30 clang           0x000000000152537c
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&) + 7292
31 clang           0x0000000001512e25
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 8951
32 clang           0x00000000014fc2af
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier) + 101
33 clang           0x00000000014fc7ea
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) + 174
34 clang           0x00000000014fbf12
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 2814
35 clang           0x00000000014fb3ca
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 538
36 clang           0x00000000014f473f clang::ParseAST(clang::Sema&, bool, bool)
+ 396
37 clang           0x00000000010009a6 clang::ASTFrontendAction::ExecuteAction()
+ 322
38 clang           0x00000000010004db clang::FrontendAction::Execute() + 139
39 clang           0x0000000000fce638
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 720
40 clang           0x0000000000f957b0
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1077
41 clang           0x0000000000f83ded cc1_main(char const**, char const**, char
const*, void*) + 641
42 clang           0x0000000000f9038f main + 760
43 libc.so.6       0x00007fa71bd4676d __libc_start_main + 237
44 clang           0x0000000000f82459
Stack dump:
0.      Program arguments:
/usr/local/google/home/nlewycky/llvm/Debug+Asserts/bin/clang -cc1 -x c++ b.ii 
1.      <eof> parser at end of file
2.      b.ii:1:1: parsing struct/union/class body
Aborted (core dumped)

(gdb) bt
#0  0x00007ffff6ced425 in __GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff6cf0b8b in __GI_abort () at abort.c:91
#2  0x00007ffff6ce60ee in __assert_fail_base (fmt=<optimized out>,
assertion=0x3abbcb0 "StartColNo <= EndColNo && \"Trying to highlight
whitespace??\"", file=0x3abb472 "TextDiagnostic.cpp", line=<optimized out>,
function=<optimized out>) at assert.c:94
#3  0x00007ffff6ce6192 in __GI___assert_fail (assertion=0x3abbcb0 "StartColNo
<= EndColNo && \"Trying to highlight whitespace??\"", file=0x3abb472
"TextDiagnostic.cpp", line=979, 
    function=0x3abd100 <highlightRange(clang::CharSourceRange const&, unsigned
int, clang::FileID, (anonymous namespace)::SourceColumnMap const&,
std::string&, clang::SourceManager const&, clang::LangOptions
const&)::__PRETTY_FUNCTION__> "void highlightRange(const
clang::CharSourceRange&, unsigned int, clang::FileID, const
{anonymous}::SourceColumnMap&, std::string&, const clang::SourceManager&, const
clang::LangOptions&)") at assert.c:103
#4  0x00000000010d3689 in highlightRange (R=..., LineNo=1, FID=..., map=...,
CaretLine=' ' <repeats 27 times>, SM=..., LangOpts=...) at
TextDiagnostic.cpp:979
#5  0x00000000010d3f81 in clang::TextDiagnostic::emitSnippetAndCaret
(this=0x6146e70, Loc=..., Level=clang::DiagnosticsEngine::Error, Ranges=...,
Hints=..., SM=...) at TextDiagnostic.cpp:1133
#6  0x00000000010cfd6d in clang::TextDiagnostic::emitCodeContext
(this=0x6146e70, Loc=..., Level=clang::DiagnosticsEngine::Error, Ranges=...,
Hints=..., SM=...) at
/usr/local/google/home/nlewycky/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/TextDiagnostic.h:97
#7  0x00000000010c5fbc in clang::DiagnosticRenderer::emitCaret (this=0x6146e70,
Loc=..., Level=clang::DiagnosticsEngine::Error, Ranges=..., Hints=..., SM=...)
at DiagnosticRenderer.cpp:388
#8  0x00000000010c53dc in clang::DiagnosticRenderer::emitDiagnostic
(this=0x6146e70, Loc=..., Level=clang::DiagnosticsEngine::Error, Message=...,
Ranges=..., FixItHints=..., SM=0x6121370, D=...) at DiagnosticRenderer.cpp:167
#9  0x0000000001029e30 in clang::TextDiagnosticPrinter::HandleDiagnostic
(this=0x61200a0, Level=clang::DiagnosticsEngine::Error, Info=...) at
TextDiagnosticPrinter.cpp:159
#10 0x0000000002649695 in clang::DiagnosticIDs::EmitDiag (this=0x6120180,
Diag=..., DiagLevel=clang::DiagnosticIDs::Error) at DiagnosticIDs.cpp:686
#11 0x0000000002649618 in clang::DiagnosticIDs::ProcessDiag (this=0x6120180,
Diag=...) at DiagnosticIDs.cpp:678
#12 0x0000000002640635 in clang::DiagnosticsEngine::ProcessDiag
(this=0x6120590) at
/usr/local/google/home/nlewycky/llvm/tools/clang/lib/Basic/../../include/clang/Basic/Diagnostic.h:799
#13 0x00000000026421c8 in clang::DiagnosticsEngine::EmitCurrentDiagnostic
(this=0x6120590, Force=false) at Diagnostic.cpp:374
#14 0x0000000000f829b4 in clang::DiagnosticBuilder::Emit (this=0x7fffffff81e0)
at
/usr/local/google/home/nlewycky/llvm/tools/clang/tools/driver/../../include/clang/Basic/Diagnostic.h:937
#15 0x0000000000f829e2 in clang::DiagnosticBuilder::~DiagnosticBuilder
(this=0x7fffffff81e0, __in_chrg=<optimized out>) at
/usr/local/google/home/nlewycky/llvm/tools/clang/tools/driver/../../include/clang/Basic/Diagnostic.h:965
#16 0x0000000001518535 in clang::Parser::ParseDirectDeclarator (this=0x6183110,
D=...) at ParseDecl.cpp:4837
#17 0x000000000151728a in clang::Parser::ParseDeclaratorInternal
(this=0x6183110, D=..., DirectDeclParser=(void (clang::Parser::*)(clang::Parser
* const, clang::Declarator &)) 0x1517a92
<clang::Parser::ParseDirectDeclarator(clang::Declarator&)>) at
ParseDecl.cpp:4555
#18 0x0000000001516dc4 in clang::Parser::ParseDeclarator (this=0x6183110,
D=...) at ParseDecl.cpp:4464
#19 0x00000000015261ac in
clang::Parser::ParseCXXMemberDeclaratorBeforeInitializer (this=0x6183110,
DeclaratorInfo=..., VS=..., BitfieldSize=..., LateParsedAttrs=...) at
ParseDeclCXX.cpp:1922
#20 0x0000000001526df6 in clang::Parser::ParseCXXClassMemberDeclaration
(this=0x6183110, AS=clang::AS_private, AccessAttrs=0x0, TemplateInfo=...,
TemplateDiags=0x7fffffffa120) at ParseDeclCXX.cpp:2164
#21 0x000000000156aa95 in clang::Parser::ParseSingleDeclarationAfterTemplate
(this=0x6183110, Context=6, TemplateInfo=..., DiagsFromTParams=...,
DeclEnd=..., AS=clang::AS_private, AccessAttrs=0x0) at ParseTemplate.cpp:172
#22 0x000000000156e31d in clang::Parser::ParseExplicitInstantiation
(this=0x6183110, Context=6, ExternLoc=..., TemplateLoc=..., DeclEnd=...,
AS=clang::AS_private) at ParseTemplate.cpp:1207
#23 0x000000000156a5a1 in clang::Parser::ParseDeclarationStartingWithTemplate
(this=0x6183110, Context=6, DeclEnd=..., AS=clang::AS_private, AccessAttrs=0x0)
at ParseTemplate.cpp:36
#24 0x000000000152689a in clang::Parser::ParseCXXClassMemberDeclaration
(this=0x6183110, AS=clang::AS_private, AccessAttrs=0x0, TemplateInfo=...,
TemplateDiags=0x0) at ParseDeclCXX.cpp:2066
#25 0x0000000001528de1 in clang::Parser::ParseCXXMemberSpecification
(this=0x6183110, RecordLoc=..., AttrFixitLoc=..., Attrs=..., TagType=18,
TagDecl=0x6150280) at ParseDeclCXX.cpp:2693
#26 0x000000000152537c in clang::Parser::ParseClassSpecifier (this=0x6183110,
TagTokKind=clang::tok::kw_class, StartLoc=..., DS=..., TemplateInfo=...,
AS=clang::AS_none, EnteringContext=true, DSC=clang::Parser::DSC_top_level,
Attributes=...) at ParseDeclCXX.cpp:1624
#27 0x0000000001512e25 in clang::Parser::ParseDeclarationSpecifiers
(this=0x6183110, DS=..., TemplateInfo=..., AS=clang::AS_none,
DSContext=clang::Parser::DSC_top_level, LateAttrs=0x0) at ParseDecl.cpp:3069
#28 0x00000000014fc2af in clang::Parser::ParseDeclOrFunctionDefInternal
(this=0x6183110, attrs=..., DS=..., AS=clang::AS_none) at Parser.cpp:830
#29 0x00000000014fc7ea in clang::Parser::ParseDeclarationOrFunctionDefinition
(this=0x6183110, attrs=..., DS=0x0, AS=clang::AS_none) at Parser.cpp:903
#30 0x00000000014fbf12 in clang::Parser::ParseExternalDeclaration
(this=0x6183110, attrs=..., DS=0x0) at Parser.cpp:761
#31 0x00000000014fb3ca in clang::Parser::ParseTopLevelDecl (this=0x6183110,
Result=...) at Parser.cpp:558
#32 0x00000000014f473f in clang::ParseAST (S=..., PrintStats=false,
SkipFunctionBodies=false) at ParseAST.cpp:135
#33 0x00000000010009a6 in clang::ASTFrontendAction::ExecuteAction
(this=0x61200e0) at FrontendAction.cpp:487
#34 0x00000000010004db in clang::FrontendAction::Execute (this=0x61200e0) at
FrontendAction.cpp:388
#35 0x0000000000fce638 in clang::CompilerInstance::ExecuteAction
(this=0x611f360, Act=...) at CompilerInstance.cpp:730
#36 0x0000000000f957b0 in clang::ExecuteCompilerInvocation (Clang=0x611f360) at
ExecuteCompilerInvocation.cpp:239
#37 0x0000000000f83ded in cc1_main (ArgBegin=0x7fffffffd8b8,
ArgEnd=0x7fffffffd8d0, Argv0=0x7fffffffe7b0
"/usr/local/google/home/nlewycky/llvm/Debug+Asserts/bin/clang",
MainAddr=0xf8eeae <GetExecutablePath(char const*, bool)>) at cc1_main.cpp:112
#38 0x0000000000f9038f in main (argc_=5, argv_=0x7fffffffe478) at
driver.cpp:319
(gdb) frame 4
#4  0x00000000010d3689 in highlightRange (R=..., LineNo=1, FID=..., map=...,
CaretLine=' ' <repeats 27 times>, SM=..., LangOpts=...) at
TextDiagnostic.cpp:979
979         assert(StartColNo <= EndColNo && "Trying to highlight
whitespace??");
(gdb) p StartColNo
$1 = 27
(gdb) p EndColNo
$2 = 16
(gdb) p R
$3 = (const clang::CharSourceRange &) @0x7fffffff7958: {Range = {B = {ID = 29},
E = {ID = 29}}, IsTokenRange = true}

-- 
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/20140501/4d90e5e4/attachment.html>


More information about the llvm-bugs mailing list