Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

internal error: stack overflow

Alex_K_8
Beginner
1,719 Views

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?

0 Kudos
21 Replies
Melanie_B_Intel
Employee
1,592 Views

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!

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Alex_K_8
Beginner
1,592 Views

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.

0 Kudos
KitturGanesh
Employee
1,592 Views

Thanks Alex, will reproduce the issue and file with the developers and keep you updated.

_Kittur

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Alex_K_8
Beginner
1,592 Views

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?

0 Kudos
KitturGanesh
Employee
1,592 Views

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 

0 Kudos
Alex_K_8
Beginner
1,592 Views

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?

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Alex_K_8
Beginner
1,592 Views

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?

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
KitturGanesh
Employee
1,592 Views

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

 

 

 

 

0 Kudos
Alex_K_8
Beginner
1,592 Views

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 needed

I 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?

 

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Alex_K_8
Beginner
1,592 Views

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.

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Alex_K_8
Beginner
1,592 Views

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!

0 Kudos
KitturGanesh
Employee
1,592 Views

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

0 Kudos
Judith_W_Intel
Employee
1,592 Views

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
      ^

....

 

0 Kudos
KitturGanesh
Employee
1,306 Views

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

0 Kudos
Reply