<div dir="ltr">Adding back cfe-dev<div><br></div><div>This seems to be a crash on invalid code (and as such it might take a while to fix). I've opened a bug report with reduced test case <a href="http://llvm.org/bugs/show_bug.cgi?id=20525">http://llvm.org/bugs/show_bug.cgi?id=20525</a></div>

<div><br></div><div>Now I suggest you do some debugging and figure out why QtPrivate::FunctionPointer isn't defined. It might be a bug in Qt or in the way your project is set up. It's defined in qobjectdefs_impl.h if google is to be trusted :)</div>

<div><br></div><div>Nikola</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 1, 2014 at 7:45 PM, Xavier Wang <span dir="ltr"><<a href="mailto:weasley.wx@gmail.com" target="_blank">weasley.wx@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have upload crash sample and script generated by clang to Google<br>
Drive: <a href="https://docs.google.com/file/d/0B7OjXWezj0rQSGVwM1FDVWpWRDA/edit" target="_blank">https://docs.google.com/file/d/0B7OjXWezj0rQSGVwM1FDVWpWRDA/edit</a><br>
<br>
this is the clang output:<br>
<br>
------------------------------<br>
fatal error: too many errors emitted, stopping now [-ferror-limit=]<br>
Stack dump:<br>
0.      Program arguments: D:\MinGW\bin\clang.exe -cc1 -triple i686-pc-windows-g<br>
nu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name al<br>
lqt_pp.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbos<br>
e -mconstructor-aliases -target-cpu pentium4 -coverage-file D:\Work\Sources\luac<br>
lang-parser\examples\allqt_pp.o -resource-dir D:\MinGW\bin\..\lib\clang\3.5.0 -f<br>
deprecated-macro -fdebug-compilation-dir D:\Work\Sources\luaclang-parser\example<br>
s -ferror-limit 19 -fmessage-length 80 -mstackrealign -fno-use-cxa-atexit -fobjc<br>
-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-dia<br>
gnostics -o allqt_pp.o -x c++ allqt_pp.cpp<br>
1.      D:/Qt/include\QtCore/qobject.h:247:13: current parser token 'connect'<br>
2.      D:/Qt/include\QtCore/qobject.h:114:1: parsing struct/union/class body 'Q<br>
Object'<br>
0x011F877F (0x00000000 0x00000000 0x04BA5D00 0x0254CEB0)<br>
0x0120AC0F (0x04BA5D00 0x0254D780 0x00000000 0x005BB868)<br>
0x0115A3DE (0x00000000 0x00000000 0x0254D780 0x0254D7B8)<br>
0x01135E4A (0x00000006 0x0254D780 0x0254D7B8 0x0254D998)<br>
0x01136788 (0x00000006 0x0254D998 0x00000000 0x00000000)<br>
0x011355AF (0x00000006 0x0254D998 0x00000000 0x00000000)<br>
0x011598F9 (0x00000000 0x00000000 0x0254E10C 0x00000000)<br>
0x0115AF1C (0x00135656 0x00135677 0x0254E174 0x00000012)<br>
0x0115C132 (0x0000007C 0x00135656 0x0254E7D8 0x0254E790)<br>
0x0113B336 (0x0254E7D8 0x0254E790 0x00000003 0x00000005)<br>
0x0112DD41 (0x0254EA80 0x0254EA5C 0x0254E7D8 0x00000003)<br>
0x0112DF81 (0x0254EA80 0x0254EA5C 0x00000000 0x00000003)<br>
0x0112E59B (0x0254EA80 0x0254EA5C 0x00000000 0x005BB868)<br>
0x0112F56E (0x0254EABC 0x005667F8 0x00561858 0x00561858)<br>
0x0112BFFF (0x005A5058 0x00000000 0x00000000 0x005667F8)<br>
0x00E51CDD (0x00000000 0x00000001 0x00561858 0x005667F8)<br>
0x00E51C0B (0x00561858 0x005667F8 0x00000018 0x00000001)<br>
0x00E40B8E (0x005667F8 0x005645D3 0x00561858 0x00561858)<br>
0x00E78D6A (0x00561858 0x00000000 0x00000001 0x005645B8)<br>
0x00812CA8 (0x0254F7E4 0x0254F880 0x005645B8 0x0081060E)<br>
0x00811B1F (0x00000029 0x00562420 0x00555B38 0x1A8866F5)<br>
0x01510242 (0x7F557000 0x0254FDC0 0x77DF98EE 0x7F557000)<br>
0x77A6495D (0x7F557000 0x6CD3717D 0x00000000 0x00000000), BaseThreadInitThunk()<br>
+ 0xE bytes(s)<br>
0x77DF98EE (0xFFFFFFFF 0x77DEE0BF 0x00000000 0x00000000), RtlInitializeException<br>
Chain() + 0x84 bytes(s)<br>
0x77DF98C4 (0x015102BF 0x7F557000 0x00000000 0x00000000), RtlInitializeException<br>
Chain() + 0x5A bytes(s)<br>
clang.exe: error: clang frontend command failed due to signal (use -v to see inv<br>
ocation)<br>
clang version 3.5.0 (212439)<br>
Target: i686-pc-windows-gnu<br>
Thread model: posix<br>
clang.exe: note: diagnostic msg: PLEASE submit a bug report to <a href="http://llvm.org/b
ugs/" target="_blank">http://llvm.org/b<br>
ugs/</a> and include the crash backtrace, preprocessed source, and associated run sc<br>
ript.<br>
clang.exe: note: diagnostic msg:<br>
********************<br>
<br>
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:<br>
Preprocessed source(s) and associated run script(s) are located at:<br>
clang.exe: note: diagnostic msg: C:\Users\sw\AppData\Local\Temp\allqt_pp-2018c0.<br>
cpp<br>
clang.exe: note: diagnostic msg: C:\Users\sw\AppData\Local\Temp\allqt_pp-2018c0.<br>
sh<br>
clang.exe: note: diagnostic msg:<br>
<br>
********************<br>
-------------------------<br>
<br>
2014-08-01 13:01 GMT+08:00 Nikola Smiljanic <<a href="mailto:popizdeh@gmail.com">popizdeh@gmail.com</a>>:<br>
<div class="HOEnZb"><div class="h5">> Can you try and reduce the preprocessed file?<br>
><br>
><br>
> On Fri, Aug 1, 2014 at 1:48 PM, Xavier Wang <<a href="mailto:weasley.wx@gmail.com">weasley.wx@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> I have found a crash on nullptr when parse Qt header files.<br>
>><br>
>> it caused by a dyn_cast on nullptr, at here (Line 9240 in SemaDecl.cpp):<br>
>><br>
>> -------------------------<br>
>> /// FinalizeDeclaration - called by ParseDeclarationAfterDeclarator to<br>
>> perform<br>
>> /// any semantic actions necessary after any initializer has been<br>
>> attached.<br>
>> void<br>
>> Sema::FinalizeDeclaration(Decl *ThisDecl) {<br>
>>   // Note that we are no longer parsing the initializer for this<br>
>> declaration.<br>
>>   ParsingInitForAutoVars.erase(ThisDecl);<br>
>><br>
>>   VarDecl *VD = dyn_cast_or_null<VarDecl>(ThisDecl);<br>
>>   if (!VD)<br>
>>     return;<br>
>><br>
>>   checkAttributesAfterMerging(*this, *VD);<br>
>><br>
>>   // Static locals inherit dll attributes from their function.<br>
>>   if (VD->isStaticLocal()) {<br>
>>     if (FunctionDecl *FD =<br>
>>             dyn_cast<FunctionDecl>(VD->getParentFunctionOrMethod())) {<br>
>> // !!!here!!!<br>
>> ------------------------<br>
>><br>
>> maybe dyn_cast_or_null is needed? or is there something wrong with it?<br>
>><br>
>> the source code is the preprocessed header file for Qt 5.2, it's<br>
>> 5.74MB+, So I can not upload it.<br>
>><br>
>> the stack dump is:<br>
>><br>
>> > libclang.dll!llvm::isa_impl_cl<clang::FunctionDecl,clang::DeclContext<br>
>> > const *>::doit(const clang::DeclContext * Val) Line 94 C++<br>
>>   libclang.dll!llvm::isa_impl_wrap<clang::FunctionDecl,clang::DeclContext<br>
>> const *,clang::DeclContext const *>::doit(const clang::DeclContext *<br>
>> const & Val) Line 122 C++<br>
>>   libclang.dll!llvm::isa_impl_wrap<clang::FunctionDecl,clang::DeclContext<br>
>> * const,clang::DeclContext const *>::doit(clang::DeclContext * const &<br>
>> Val) Line 114 C++<br>
>>   libclang.dll!llvm::isa<clang::FunctionDecl,clang::DeclContext<br>
>> *>(clang::DeclContext * const & Val) Line 134 C++<br>
>><br>
>> libclang.dll!llvm::dyn_cast<clang::FunctionDecl,clang::DeclContext>(clang::DeclContext<br>
>> * Val) Line 278 C++<br>
>>   libclang.dll!clang::Sema::FinalizeDeclaration(clang::Decl *<br>
>> ThisDecl) Line 9241 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier<br>
>> AS, clang::AttributeList * AccessAttrs, const<br>
>> clang::Parser::ParsedTemplateInfo & TemplateInfo,<br>
>> clang::ParsingDeclRAIIObject * TemplateDiags) Line 2380 C++<br>
>>   libclang.dll!clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned<br>
>> int Context, const clang::Parser::ParsedTemplateInfo & TemplateInfo,<br>
>> clang::ParsingDeclRAIIObject & DiagsFromTParams, clang::SourceLocation<br>
>> & DeclEnd, clang::AccessSpecifier AS, clang::AttributeList *<br>
>> AccessAttrs) Line 173 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned<br>
>> int Context, clang::SourceLocation & DeclEnd, clang::AccessSpecifier<br>
>> AS, clang::AttributeList * AccessAttrs) Line 145 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseDeclarationStartingWithTemplate(unsigned<br>
>> int Context, clang::SourceLocation & DeclEnd, clang::AccessSpecifier<br>
>> AS, clang::AttributeList * AccessAttrs) Line 39 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier<br>
>> AS, clang::AttributeList * AccessAttrs, const<br>
>> clang::Parser::ParsedTemplateInfo & TemplateInfo,<br>
>> clang::ParsingDeclRAIIObject * TemplateDiags) Line 2083 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation<br>
>> RecordLoc, clang::SourceLocation AttrFixitLoc,<br>
>> clang::Parser::ParsedAttributesWithRange & Attrs, unsigned int<br>
>> TagType, clang::Decl * TagDecl) Line 2709 C++<br>
>>   libclang.dll!clang::Parser::ParseClassSpecifier(clang::tok::TokenKind<br>
>> TagTokKind, clang::SourceLocation StartLoc, clang::DeclSpec & DS,<br>
>> const clang::Parser::ParsedTemplateInfo & TemplateInfo,<br>
>> clang::AccessSpecifier AS, bool EnteringContext,<br>
>> clang::Parser::DeclSpecContext DSC,<br>
>> clang::Parser::ParsedAttributesWithRange & Attributes) Line 1639 C++<br>
>>   libclang.dll!clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec<br>
>> & DS, const clang::Parser::ParsedTemplateInfo & TemplateInfo,<br>
>> clang::AccessSpecifier AS, clang::Parser::DeclSpecContext DSContext,<br>
>> clang::Parser::LateParsedAttrList * LateAttrs) Line 3111 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange<br>
>> & attrs, clang::ParsingDeclSpec & DS, clang::AccessSpecifier AS) Line<br>
>> 836 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange<br>
>> & attrs, clang::ParsingDeclSpec * DS, clang::AccessSpecifier AS) Line<br>
>> 904 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange<br>
>> & attrs, clang::ParsingDeclSpec * DS) Line 762 C++<br>
>><br>
>> libclang.dll!clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef><br>
>> & Result) Line 559 C++<br>
>>   libclang.dll!clang::ParseAST(clang::Sema & S, bool PrintStats, bool<br>
>> SkipFunctionBodies) Line 145 C++<br>
>>   libclang.dll!clang::ASTFrontendAction::ExecuteAction() Line 514 C++<br>
>>   libclang.dll!clang::FrontendAction::Execute() Line 415 C++<br>
>>   libclang.dll!clang::ASTUnit::Parse(llvm::MemoryBuffer *<br>
>> OverrideMainBuffer) Line 1152 C++<br>
>>   libclang.dll!clang::ASTUnit::LoadFromCompilerInvocation(bool<br>
>> PrecompilePreamble) Line 1915 C++<br>
>>   libclang.dll!clang::ASTUnit::LoadFromCommandLine(const char * *<br>
>> ArgBegin, const char * * ArgEnd,<br>
>> llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> Diags,<br>
>> llvm::StringRef ResourceFilesPath, bool OnlyLocalDecls, bool<br>
>> CaptureDiagnostics,<br>
>><br>
>> llvm::ArrayRef<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char><br>
>> >,llvm::MemoryBuffer *> > RemappedFiles, bool<br>
>> RemappedFilesKeepOriginalName, bool PrecompilePreamble,<br>
>> clang::TranslationUnitKind TUKind, bool CacheCodeCompletionResults,<br>
>> bool IncludeBriefCommentsInCodeCompletion, bool<br>
>> AllowPCHWithCompilerErrors, bool SkipFunctionBodies, bool<br>
>> UserFilesAreVolatile, bool ForSerialization,<br>
>> std::unique_ptr<clang::ASTUnit,std::default_delete<clang::ASTUnit> > *<br>
>> ErrAST) Line 2030 C++<br>
>>   libclang.dll!clang_parseTranslationUnit_Impl(void * UserData) Line 2925<br>
>> C++<br>
>><br>
>> libclang.dll!llvm::CrashRecoveryContext::RunSafelyOnThread::__l3::<lambda>()<br>
>> Line 96 C++<br>
>>   libclang.dll!llvm::function_ref<void<br>
>> __cdecl(void)>::callback_fn<void <lambda>(void) >(int callable) Line<br>
>> 77 C++<br>
>>   libclang.dll!llvm::function_ref<void __cdecl(void)>::operator()() Line<br>
>> 85 C++<br>
>>   libclang.dll!llvm::function_ref<void<br>
>> __cdecl(void)>::callback_fn<llvm::function_ref<void __cdecl(void)><br>
>> >(int callable) Line 77 C++<br>
>>   libclang.dll!llvm::function_ref<void __cdecl(void)>::operator()() Line<br>
>> 85 C++<br>
>>   libclang.dll!llvm::function_ref<void<br>
>> __cdecl(void)>::callback_fn<llvm::function_ref<void __cdecl(void)><br>
>> >(int callable) Line 77 C++<br>
>>   libclang.dll!llvm::function_ref<void __cdecl(void)>::operator()() Line<br>
>> 85 C++<br>
>><br>
>> libclang.dll!llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void<br>
>> __cdecl(void)> Fn) Line 319 C++<br>
>>   libclang.dll!RunSafelyOnThread_Dispatch(void * UserData) Line 366 C++<br>
>>   libclang.dll!ThreadCallback(void * param) Line 81 C++<br>
>>   [外部代码]<br>
>>   [下面的框架可能不正确和/或缺失,没有为 kernel32.dll 加载符号]<br>
>><br>
>><br>
>> Anyone can help me?<br>
>><br>
>> --<br>
>> regards,<br>
>> Xavier Wang.<br>
>><br>
>> _______________________________________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
regards,<br>
Xavier Wang.<br>
</font></span></blockquote></div><br></div>