<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Clang 3.8 crash after "error: typedef redefinition with different types""
href="https://bugs.llvm.org/show_bug.cgi?id=32529">32529</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Clang 3.8 crash after "error: typedef redefinition with different types"
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>3.8
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>-New Bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>dholbert@mozilla.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>Just managed to make clang crash. Filing this bug, as it requests. I'll
include the preprocessed .cpp and run script, as well as the backtrace.
Here's the output from the run script (including the backtrace):
In file included from Unified_cpp_layout_generic2.cpp:20:
In file included from
/scratch/work/builds/mozilla-inbound/mozilla/layout/generic/nsGridContainerFrame.cpp:17:
../../../mozilla/layout/generic/OrderAwareFrameIterator.h:23:3: error: typedef
redefinition with different types
('OrderAwareFrameIteratorT<nsFrameList::iterator>' (aka
'OrderAwareFrameIteratorT<nsFrameList::Iterator>') vs
'mozilla::OrderAwareFrameIterator')
OrderAwareFrameIterator;
^
../../../mozilla/layout/generic/nsGridContainerFrame.h:26:7: note: previous
definition is here
class OrderAwareFrameIterator;
^
In file included from Unified_cpp_layout_generic2.cpp:20:
In file included from
/scratch/work/builds/mozilla-inbound/mozilla/layout/generic/nsGridContainerFrame.cpp:17:
../../../mozilla/layout/generic/OrderAwareFrameIterator.h:25:3: error: typedef
redefinition with different types
('OrderAwareFrameIteratorT<nsFrameList::reverse_iterator>' (aka
'OrderAwareFrameIteratorT<ReverseIterator<nsFrameList::Iterator> >') vs
'mozilla::ReverseOrderAwareFrameIterator')
ReverseOrderAwareFrameIterator;
^
../../../mozilla/layout/generic/nsGridContainerFrame.h:27:7: note: previous
definition is here
class ReverseOrderAwareFrameIterator;
^
0 libLLVM-3.8.so.1 0x00007ff0a4806488
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 56
1 libLLVM-3.8.so.1 0x00007ff0a4804706 llvm::sys::RunSignalHandlers() + 54
2 libLLVM-3.8.so.1 0x00007ff0a480485b
3 libc.so.6 0x00007ff0a394b860
4 libLLVM-3.8.so.1 0x00007ff0a47aee2b
llvm::FoldingSetNodeID::AddInteger(unsigned int) + 11
5 libLLVM-3.8.so.1 0x00007ff0a478528a
llvm::APInt::Profile(llvm::FoldingSetNodeID&) const + 26
6 libLLVM-3.8.so.1 0x00007ff0a4780e4f
llvm::APFloat::Profile(llvm::FoldingSetNodeID&) const + 47
7 clang 0x0000557b6c050e2f
8 clang 0x0000557b6c051ca1
9 clang 0x0000557b6c050bfa
10 clang 0x0000557b6c051ca1
11 clang 0x0000557b6c051243
12 clang 0x0000557b6c0516f6
13 clang 0x0000557b6c051ca1
14 clang 0x0000557b6c052355
clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool)
const + 885
15 clang 0x0000557b6bed58db
clang::ASTContext::getDecltypeType(clang::Expr*, clang::QualType) const + 107
16 clang 0x0000557b6bba0f16
clang::Sema::BuildDecltypeType(clang::Expr*, clang::SourceLocation, bool) + 134
17 clang 0x0000557b6bbad740
18 clang 0x0000557b6bbb443d
clang::Sema::GetTypeForDeclarator(clang::Declarator&, clang::Scope*) + 157
19 clang 0x0000557b6bbb470b
clang::Sema::ActOnTypeName(clang::Scope*, clang::Declarator&) + 27
20 clang 0x0000557b6b66370c
clang::Parser::ParseTypeName(clang::SourceRange*,
clang::Declarator::TheContext, clang::AccessSpecifier, clang::Decl**,
clang::ParsedAttributes*) + 1020
21 clang 0x0000557b6b6d2f9f clang::Parser::ParseTemplateArgument() +
95
22 clang 0x0000557b6b6d8ffb
clang::Parser::ParseTemplateArgumentList(llvm::SmallVector<clang::ParsedTemplateArgument,
16u>&) + 171
23 clang 0x0000557b6b6d9264
clang::Parser::ParseTemplateIdAfterTemplateName(clang::OpaquePtr<clang::TemplateName>,
clang::SourceLocation, clang::CXXScopeSpec const&, bool,
clang::SourceLocation&, llvm::SmallVector<clang::ParsedTemplateArgument, 16u>&,
clang::SourceLocation&) + 116
24 clang 0x0000557b6b6d93a9
clang::Parser::AnnotateTemplateIdToken(clang::OpaquePtr<clang::TemplateName>,
clang::TemplateNameKind, clang::CXXScopeSpec&, clang::SourceLocation,
clang::UnqualifiedId&, bool) + 153
25 clang 0x0000557b6b69cca8
clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&,
clang::OpaquePtr<clang::QualType>, bool, bool*, bool, clang::IdentifierInfo**)
+ 2024
26 clang 0x0000557b6b645668
clang::Parser::TryAnnotateTypeOrScopeToken(bool, bool) + 232
27 clang 0x0000557b6b686dea clang::Parser::ParseCastExpression(bool,
bool, bool&, clang::Parser::TypeCastState) + 6218
28 clang 0x0000557b6b68815d clang::Parser::ParseCastExpression(bool,
bool, clang::Parser::TypeCastState) + 45
29 clang 0x0000557b6b68cebe
clang::Parser::ParseConstantExpression(clang::Parser::TypeCastState) + 46
30 clang 0x0000557b6b67320c
clang::Parser::ParseStaticAssertDeclaration(clang::SourceLocation&) + 348
31 clang 0x0000557b6b66cb27 clang::Parser::ParseDeclaration(unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 487
32 clang 0x0000557b6b6c542f
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*,
clang::Parser::ParsedAttributesWithRange&) + 3231
33 clang 0x0000557b6b6c5657
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) + 135
34 clang 0x0000557b6b6c9eb9
clang::Parser::ParseCompoundStatementBody(bool) + 1769
35 clang 0x0000557b6b6ca59e
clang::Parser::ParseCompoundStatement(bool, unsigned int) + 30
36 clang 0x0000557b6b6ca5d2
clang::Parser::ParseCompoundStatement(bool) + 18
37 clang 0x0000557b6b6c51e2
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*,
clang::Parser::ParsedAttributesWithRange&) + 2642
38 clang 0x0000557b6b6c5657
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) + 135
39 clang 0x0000557b6b6c5784
clang::Parser::ParseStatement(clang::SourceLocation*, bool) + 100
40 clang 0x0000557b6b6c91c1 clang::Parser::ParseDoStatement() + 129
41 clang 0x0000557b6b6c50bf
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*,
clang::Parser::ParsedAttributesWithRange&) + 2351
42 clang 0x0000557b6b6c5657
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) + 135
43 clang 0x0000557b6b6c9eb9
clang::Parser::ParseCompoundStatementBody(bool) + 1769
44 clang 0x0000557b6b6ccafa
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 314
45 clang 0x0000557b6b64f905
clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&) + 421
46 clang 0x0000557b6b64f6ae
clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&) + 126
47 clang 0x0000557b6b680a0d
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation,
clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int,
clang::Decl*) + 1693
48 clang 0x0000557b6b681daa
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&) + 3594
49 clang 0x0000557b6b6619ad
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 4381
50 clang 0x0000557b6b6d7148
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 968
51 clang 0x0000557b6b6d8a0f
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 1055
52 clang 0x0000557b6b6d8d1f
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 111
53 clang 0x0000557b6b66cb87 clang::Parser::ParseDeclaration(unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 583
54 clang 0x0000557b6b64cea1
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 321
55 clang 0x0000557b6b679c17
clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*,
std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&,
clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) + 455
56 clang 0x0000557b6b67a276 clang::Parser::ParseNamespace(unsigned
int, clang::SourceLocation&, clang::SourceLocation) + 1462
57 clang 0x0000557b6b66cbdd clang::Parser::ParseDeclaration(unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 669
58 clang 0x0000557b6b64cea1
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 321
59 clang 0x0000557b6b64d84c
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 460
60 clang 0x0000557b6b641ef3 clang::ParseAST(clang::Sema&, bool,
bool) + 611
61 clang 0x0000557b6b49682e clang::FrontendAction::Execute() + 302
62 clang 0x0000557b6b46a656
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 278
63 clang 0x0000557b6b512903
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2339
64 clang 0x0000557b6b197798 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 2456
65 clang 0x0000557b6b193fe0 main + 6160
66 libc.so.6 0x00007ff0a39363f1 __libc_start_main + 241
67 clang 0x0000557b6b195a8a _start + 42
Stack dump:
0. Program arguments: /usr/lib/llvm-3.8/bin/clang -cc1 -triple
x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier
-main-file-name Unified_cpp_layout_generic2.cpp -mrelocation-model pic
-pic-level 2 -mthread-model posix -mdisable-fp-elim -relaxed-aliasing
-masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array
-target-cpu x86-64 -dwarf-column-info -debug-info-kind=limited -dwarf-version=4
-debugger-tuning=gdb -D DEBUG=1 -D TRACING=1 -D OS_POSIX=1 -D OS_LINUX=1 -D
STATIC_EXPORTABLE_JS_API -D MOZ_HAS_MOZGLUE -D MOZILLA_INTERNAL_API -D
IMPL_LIBXUL -D MOZILLA_CLIENT -Wall -Wc++11-compat -Wempty-body
-Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare
-Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof
-Wclass-varargs -Wloop-analysis -Wc++11-compat-pedantic -Wc++14-compat
-Wc++14-compat-pedantic -Wc++1z-compat -Wimplicit-fallthrough
-Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations
-Wno-error=array-bounds -Wformat -Wno-gnu-zero-variadic-macro-arguments
-Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-error=shadow
-std=gnu++11 -fdeprecated-macro -ferror-limit 19 -fmessage-length 0 -pthread
-fno-rtti -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -x
c++ Unified_cpp_layout_generic2-e8a115.cpp
1. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:112:5
<Spelling=../../dist/include/mozilla/Assertions.h:402:71>: current parser token
'>'
2. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:17:1: parsing
namespace 'mozilla'
3. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:28:1: parsing
struct/union/class body 'OrderAwareFrameIteratorT'
4. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:110:3:
parsing function body 'SetItemCount'
5. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:110:3: in
compound statement ('{}')
6. ../../../mozilla/layout/generic/OrderAwareFrameIterator.h:112:5
<Spelling=../../dist/include/mozilla/Assertions.h:426:6>: in compound statement
('{}')
Unified_cpp_layout_generic2-e8a115.sh: line 4: 8092 Segmentation fault
(core dumped) "/usr/lib/llvm-3.8/bin/clang" "-cc1" "-triple"
"x86_64-pc-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free"
"-disable-llvm-verifier" "-main-file-name" "Unified_cpp_layout_generic2.cpp"
"-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix"
"-mdisable-fp-elim" "-relaxed-aliasing" "-masm-verbose" "-mconstructor-aliases"
"-munwind-tables" "-fuse-init-array" "-target-cpu" "x86-64"
"-dwarf-column-info" "-debug-info-kind=limited" "-dwarf-version=4"
"-debugger-tuning=gdb" "-D" "DEBUG=1" "-D" "TRACING=1" "-D" "OS_POSIX=1" "-D"
"OS_LINUX=1" "-D" "STATIC_EXPORTABLE_JS_API" "-D" "MOZ_HAS_MOZGLUE" "-D"
"MOZILLA_INTERNAL_API" "-D" "IMPL_LIBXUL" "-D" "MOZILLA_CLIENT" "-Wall"
"-Wc++11-compat" "-Wempty-body" "-Wignored-qualifiers" "-Woverloaded-virtual"
"-Wpointer-arith" "-Wsign-compare" "-Wtype-limits" "-Wunreachable-code"
"-Wwrite-strings" "-Wno-invalid-offsetof" "-Wclass-varargs" "-Wloop-analysis"
"-Wc++11-compat-pedantic" "-Wc++14-compat" "-Wc++14-compat-pedantic"
"-Wc++1z-compat" "-Wimplicit-fallthrough" "-Wstring-conversion"
"-Wno-inline-new-delete" "-Wno-error=deprecated-declarations"
"-Wno-error=array-bounds" "-Wformat" "-Wno-gnu-zero-variadic-macro-arguments"
"-Wno-unknown-warning-option" "-Wno-return-type-c-linkage" "-Wno-error=shadow"
"-std=gnu++11" "-fdeprecated-macro" "-ferror-limit" "19" "-fmessage-length" "0"
"-pthread" "-fno-rtti" "-fobjc-runtime=gcc" "-fdiagnostics-show-option"
"-fcolor-diagnostics" "-x" "c++" "Unified_cpp_layout_generic2-e8a115.cpp"</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>