- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
When attempting to compile Firefox v41+ with ICL (works with MSVC, Clang and GCC) an error occurs stating that a stack overflow is occurring.
In v41, Mozilla have introduced their own tuple class (see this bug for information, patch here).
Whenever a source file calls upon this class, ICL throws the stack overflow error at this line of the tuple class file.
Here's an example of a build failure:
1:09.11 ../../dist/include/mozilla/MediaEngineWebRTCAudio.cpp 1:09.11 ../../../dist/include/mozilla/Tuple.h(403): internal error: stack overflow 1:09.12 -> decltype(Move(mozilla::Get<Index>(aTuple))) 1:09.13 ^ 1:09.13 1:09.13 compilation aborted for c:/gecko-dev/dom/media/webrtc/MediaEngineWebRTCAudio.cpp (code 4)
I know a test case is usually the best way to confirm if something is wrong, but I'm not quite sure how it's being used in Mozilla's case, is there any other way I can help debug this issue?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you attach the preprocessed source file (use -E on the command line). Also include the command line and what version of visual studio you're using. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Melanie, I was about to ask for that file as well. -E is fine, but one needs to pipe it out. The -P (/P) option can be used as well so the #line directives are omitted and the .i file is created right away which can be attached.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sure no problem. I've used -EP -P, if that's okay?
In the archive attached, I've put:
- The command in a text file
- Three source files
- The preprocessed file
The attached .cpp file is just an example of where the error occurs, essentially any file that calls runnable_utils.h, which uses tuples (and therefore calls up Tuple.h) will get the internal error.
System this is on:
- Windows 10 Professional
- Visual Studio 2013 Update 5
- ICL 16.0 Build 20150815 (64-Bit)
N.B. the preprocessed file has a lot of white space, not sure if that's normal or not.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Alex, will reproduce the issue and file with the developers and keep you updated.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alex, I am able to reproduce the issue and have filed with the developers. I'll update you as soon as the release with a fix is out, thx
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Alex, I am able to reproduce the issue and have filed with the developers. I'll update you as soon as the release with a fix is out, thx
_Kittur
Great, thanks Kittur! I don't suppose you are aware of any workaround in the meanwhile?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alex, nope don't have any workaround for this but I'll keep you updated if and when the developer after further investigation let me know of any workaround if any, thx
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Alex, nope don't have any workaround for this but I'll keep you updated if and when the developer after further investigation let me know of any workaround if any, thx
_Kittur
Hi Kittur, am I correct in assuming that the fix isn't in Update 1 (Version 16.0 Build 20151021) either?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
Yes, the fix is not in the latest update 1 release (Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Versi
on 16.0.1.146 Build 20151021). I'll keep you updated as soon as the release with the fix for this issue is out. Appreciate your patience tillt then.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Hi Alex,
Yes, the fix is not in the latest update 1 release (Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Versi
on 16.0.1.146 Build 20151021). I'll keep you updated as soon as the release with the fix for this issue is out. Appreciate your patience tillt then._Kittur
Hi Kittur, Update 2 hasn't fixed the issue either. Do you have any idea when it'll get fixed?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex, yes the fix hasn't gone into update 2 and I am still awaiting as to what the status is from the group and will update you right after. Appreciate your patience through this, as always.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
You can use the following workaround for now:
Add /Qtemplate-depth=64 and see if it solves the problem? That number can be adjusted if needed
I tried your test case and it works for me. Please try it and let me know.
Regards,
Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Hi Alex,
You can use the following workaround for now:
Add /Qtemplate-depth=64 and see if it solves the problem? That number can be adjusted if neededI tried your test case and it works for me. Please try it and let me know.
Regards,
Kittur
Hi Kittur,
So it seems that the ICE no longer happens. Unfortunately another issue has come up after it whenever the Tuple file gets used:
6:37.61 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(36): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.61 argument types are: (mozilla::Tuple<mozilla::layers::TextureClient *>) 6:37.62 (*function)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.62 ^ 6:37.62 detected during: 6:37.62 instantiation of "void details::CallFunction(mozilla::IndexSequence<Indices...>, Function, mozilla::Tuple<Args...> &) [with Indices=<0Ui64>, Function=void (*)(mozilla::layers::TextureClient *), Args=<mozilla::layers::TextureClient *>]" at line 55 6:37.63 instantiation of "void DispatchTupleToFunction(Function, mozilla::Tuple<Args...> &) [with Function=void (*)(mozilla::layers::TextureClient *), Args=<mozilla::layers::TextureClient *>]" at line 350 6:37.63 instantiation of "void RunnableFunction<Function, Params>::Run() [with Function=void (*)(mozilla::layers::TextureClient *), Params=mozilla::Tuple<mozilla::layers::TextureClient *>]" at line 343 6:37.63 instantiation of "RunnableFunction<Function, Params>::RunnableFunction(Function, Params &&) [with Function=void (*)(mozilla::layers::TextureClient *), Params=mozilla::Tuple<mozilla::layers::TextureClient *>]" at line 365 6:37.64 instantiation of "CancelableTask *NewRunnableFunction(Function, Args &&...) [with Function=void (*)(mozilla::layers::TextureClient *), Args=<mozilla::layers::TextureClient *&>]" at line 155 of "../dist/include/mozilla/layers/AtomicRefCountedWithFinalize.h" 6:37.64 instantiation of "void mozilla::AtomicRefCountedWithFinalize<T>::Release() [with T=mozilla::layers::TextureClient]" at line 362 of "c:\Users\Worker\Downloads\gecko-dev-esr45\objdir\dist\include\mozilla/RefPtr.h" 6:37.65 instantiation of "void RefPtr<T>::AddRefTraitsReleaseHelper(mozilla::RemoveConst<T>::Type *) [with T=mozilla::layers::TextureClient]" at line 372 of "c:\Users\Worker\Downloads\gecko-dev-esr45\objdir\dist\include\mozilla/RefPtr.h" 6:37.65 instantiation of "void RefPtr<T>::AddRefTraits<U>::Release(U *) [with T=mozilla::layers::TextureClient, U=mozilla::layers::TextureClient]" at line 56 of "c:\Users\Worker\Downloads\gecko-dev-esr45\objdir\dist\include\mozilla/RefPtr.h" 6:37.65 instantiation of "RefPtr<T>::~RefPtr() [with T=mozilla::layers::TextureClient]" at line 645 of "../dist/include/mozilla/layers/TextureClient.h" 6:37.66 6:37.66 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.66 argument types are: (mozilla::Tuple<nsrefcnt, bool>) 6:37.66 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.67 ^ 6:37.67 detected during: 6:37.67 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 47 6:37.68 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 307 6:37.69 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 300 6:37.71 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 333 6:37.71 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<uint64_t={unsigned __int64} &, bool &>]" at line 902 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.72 6:37.72 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.72 argument types are: (mozilla::Tuple<nsrefcnt, bool>) 6:37.72 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.72 ^ 6:37.72 detected during: 6:37.73 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 47 6:37.74 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 307 6:37.74 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 300 6:37.74 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, bool>]" at line 333 6:37.74 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, bool), Args=<uint64_t={unsigned __int64} &, bool &>]" at line 902 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.74 6:37.75 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.75 argument types are: (mozilla::Tuple<nsrefcnt, nsTArray<uint32_t>>) 6:37.75 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.75 ^ 6:37.77 detected during: 6:37.77 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 47 6:37.77 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 307 6:37.77 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 300 6:37.81 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 333 6:37.82 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<uint64_t={unsigned __int64} &, const nsTArray<uint32_t={unsigned int}> &>]" at line 912 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.82 6:37.82 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.82 argument types are: (mozilla::Tuple<nsrefcnt, nsTArray<uint32_t>>) 6:37.82 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.82 ^ 6:37.83 detected during: 6:37.84 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 47 6:37.84 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 307 6:37.84 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 300 6:37.84 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<uint32_t={unsigned int}>>]" at line 333 6:37.85 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<uint32_t={unsigned int}> &), Args=<uint64_t={unsigned __int64} &, const nsTArray<uint32_t={unsigned int}> &>]" at line 912 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.86 6:37.86 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.86 argument types are: (mozilla::Tuple<nsrefcnt, nsTArray<mozilla::layers::ScrollableLayerGuid>>) 6:37.87 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.87 ^ 6:37.87 detected during: 6:37.87 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 47 6:37.92 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 307 6:37.92 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 300 6:37.92 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 333 6:37.92 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<uint64_t={unsigned __int64} &, const nsTArray<mozilla::layers::ScrollableLayerGuid> &>]" at line 945 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.92 6:37.92 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.93 argument types are: (mozilla::Tuple<nsrefcnt, nsTArray<mozilla::layers::ScrollableLayerGuid>>) 6:37.94 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.94 ^ 6:37.94 detected during: 6:37.94 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 47 6:37.94 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 307 6:37.95 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 300 6:37.95 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Params=mozilla::Tuple<nsrefcnt={MozRefCountType={uintptr_t={unsigned __int64}}}, nsTArray<mozilla::layers::ScrollableLayerGuid>>]" at line 333 6:37.96 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(uint64_t={unsigned __int64}, const nsTArray<mozilla::layers::ScrollableLayerGuid> &), Args=<uint64_t={unsigned __int64} &, const nsTArray<mozilla::layers::ScrollableLayerGuid> &>]" at line 945 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:37.96 6:37.97 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:37.97 argument types are: (mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>) 6:37.97 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:37.97 ^ 6:37.98 detected during: 6:37.98 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 47 6:37.99 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 307 6:37.99 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Params=mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 300 6:37.99 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Params=mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 333 6:37.99 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<nsBaseWidget::ScrollableLayerGuid &, const nsIWidget::AsyncDragMetrics &>]" at line 1828 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:38.00 6:38.00 c:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src/base/task.h(28): error: no instance of overloaded function "mozilla::Get" matches the argument list 6:38.00 argument types are: (mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>) 6:38.00 (obj->*method)(mozilla::Move(mozilla::Get<Indices>(arg))...); 6:38.00 ^ 6:38.02 detected during: 6:38.02 instantiation of "void details::CallMethod(mozilla::IndexSequence<Indices...>, ObjT *, Method, mozilla::Tuple<Args...> &) [with Indices=<0Ui64, 1Ui64>, ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 47 6:38.02 instantiation of "void DispatchTupleToMethod(ObjT *, Method, mozilla::Tuple<Args...> &) [with ObjT=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 307 6:38.02 instantiation of "void RunnableMethod<T, Method, Params>::Run() [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Params=mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 300 6:38.46 instantiation of "RunnableMethod<T, Method, Params>::RunnableMethod(T *, Method, Params &&) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Params=mozilla::Tuple<mozilla::layers::ScrollableLayerGuid, nsIWidget::AsyncDragMetrics>]" at line 333 6:38.46 instantiation of "CancelableTask *NewRunnableMethod(T *, Method, Args &&...) [with T=mozilla::layers::APZCTreeManager, Method=void (mozilla::layers::APZCTreeManager::*)(const mozilla::layers::ScrollableLayerGuid &, const mozilla::layers::APZCTreeManager::AsyncDragMetrics &), Args=<nsBaseWidget::ScrollableLayerGuid &, const nsIWidget::AsyncDragMetrics &>]" at line 1828 of "c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp" 6:38.46 6:38.46 compilation aborted for c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp (code 2) 6:38.46 6:38.46 In the directory /c/Users/Worker/Downloads/gecko-dev-esr45/objdir/widget 6:38.46 The following command failed to execute properly: 6:38.48 c:/Users/Worker/Downloads/gecko-dev-esr45/objdir/_virtualenv/Scripts/python.exe -m mozbuild.action.cl icl -FonsBaseWidget.obj -c -Ic:/Users/Worker/Downloads/gecko-dev-esr45/objdir/dist/stl_wrappers -DMOZ_CROSS_PROCESS_IME -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -D_WINDOWS -D_SECURE_ATL -DCOMPILER_MSVC -DMOZ_ENABLE_D3D10_LAYER -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -Ic:/Users/Worker/Downloads/gecko-dev-esr45/widget -I. -I../ipc/ipdl/_ipdlheaders -Ic:/Users/Worker/Downloads/gecko-dev-esr45/ipc/chromium/src -Ic:/Users/Worker/Downloads/gecko-dev-esr45/ipc/glue -Ic:/Users/Worker/Downloads/gecko-dev-esr45/dom/base -Ic:/Users/Worker/Downloads/gecko-dev-esr45/dom/ipc -Ic:/Users/Worker/Downloads/gecko-dev-esr45/layout/base -Ic:/Users/Worker/Downloads/gecko-dev-esr45/layout/forms -Ic:/Users/Worker/Downloads/gecko-dev-esr45/layout/generic -Ic:/Users/Worker/Downloads/gecko-dev-esr45/layout/xul -Ic:/Users/Worker/Downloads/gecko-dev-esr45/view -Ic:/Users/Worker/Downloads/gecko-dev-esr45/widget -Ic:/Users/Worker/Downloads/gecko-dev-esr45/widget/windows -I../dist/include -Ic:/Users/Worker/Downloads/gecko-dev-esr45/objdir/dist/include/nspr -Ic:/Users/Worker/Downloads/gecko-dev-esr45/objdir/dist/include/nss -MD -FI ../dist/include/mozilla-config.h -DMOZILLA_CLIENT -TP -nologo -D_HAS_EXCEPTIONS=0 -W3 -Gy -FS -wd4251 -wd4244 -wd4267 -wd4345 -wd4351 -wd4800 -wd4819 -we4553 -GR- -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -Qstd=c++11 -Qtemplate-depth=64 -O1 -w -Oy -Fdgenerated.pdb c:/Users/Worker/Downloads/gecko-dev-esr45/widget/nsBaseWidget.cpp 6:38.49 c:/Users/Worker/Downloads/gecko-dev-esr45/config/rules.mk:956: recipe for target 'nsBaseWidget.obj' failed 6:38.49 mozmake.EXE[5]: *** [nsBaseWidget.obj] Error 1 6:38.49 c:/Users/Worker/Downloads/gecko-dev-esr45/config/recurse.mk:71: recipe for target 'widget/target' failed 6:38.49 mozmake.EXE[4]: *** [widget/target] Error 2 6:38.49 mozmake.EXE[4]: *** Waiting for unfinished jobs....
Would you like me to start a separate thread for this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
I discussed your issue with the developer and understood that the complete fix has gone into the branch and it could be a new issue for which we'll need a reproducer. Can you please attach an encapsulated test case for us to reproduce this new issue you point out? Appreciate much for your help.
Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Hi Alex,
I discussed your issue with the developer and understood that the complete fix has gone into the branch and it could be a new issue for which we'll need a reproducer. Can you please attach an encapsulated test case for us to reproduce this new issue you point out? Appreciate much for your help.Kittur
I've added the source file that fails, the preprocessed source file and the Tuple header. If you need the header files in between the source file that lead up to the Tuple header let me know.
This occurs on both 2016 Update 2 and 2017 Beta 1.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Great, thanks much for the reproducer Alex. I'll investigate and reproduce the issue and let the developer know. Again, your patience till then is much appreciated.
Thanks,
Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kittur Ganesh (Intel) wrote:
Great, thanks much for the reproducer Alex. I'll investigate and reproduce the issue and let the developer know. Again, your patience till then is much appreciated.
Thanks,
Kittur
Thanks, hope it helps!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
Pardon the delay and the reminder. I couldn't reproduce with the attachment. Can you please include the headers as well and the full command line options you used for compiling with update 2? I also get error on not finding the ContentChild.h etc. Couldn't compile with the preprocessed file too. I'll await your reproducer again with the full command line options etc., thanks.
Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I also cannot reproduce your errors.
Trying to compile the preprocessed file with MSVC++ 2013 and /Zc:wchar_t I get these compilation errors.
Are you sure you created the preprocessed file correctly? Did you use the -E switch? I don't see PContentChild declared anywhere.
!% grep PContentChild ContentChild.i
class ContentChild final : public PContentChild
!%
!% icl -c /Zc:wchar_t bug.cpp
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version Mainline Beta Build x
Built Apr 11 2016 10:38:49 by jward4 on JWARD4-DESK1 in D:/workspaces/cfe/dev
Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
bug.cpp
bug.cpp(150): error: not a class or struct name
class ContentChild final : public PContentChild
^
bug.cpp(151): error: not a class or struct name
, public nsIWindowProvider
^
bug.cpp(152): error: not a class or struct name
, public nsIContentChild
^
bug.cpp(160): error: identifier "NS_DECL_NSIWINDOWPROVIDER" is undefined
NS_DECL_NSIWINDOWPROVIDER
^
....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Judy, for confirming as well (as always!)
Alex, can you please use the /P switch that will generate the preprocessed file which you can attach - appreciate much.
Kittur

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page