Closed Bug 1248105 Opened 4 years ago Closed 4 years ago

nightly 20160212 fails compilation with nsPIDOMWindow.h:44:7: error: forward declaration of ‘class mozilla::dom::Element’

Categories

(Core :: DOM: Animation, defect)

47 Branch
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox47 --- fixed

People

(Reporter: stanl-mozilla, Assigned: mt)

References

Details

(Keywords: regression)

Attachments

(2 files)

User Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0
Build ID: 20160208153328

Steps to reproduce:

Pulled latest hg updates.
Ran ./mach build


Actual results:

 In file included from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings1.cpp:194:0:
24:29.77 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/BrowserElementProxyBinding.cpp: In function ‘bool mozilla::dom::BrowserElementProxyBinding::getScreenshot(JSContext*, JS::Handle<JSObject*>, mozilla::dom::BrowserElementProxy*, const JSJitMethodCallArgs&)’:
24:29.77 Warning: -Wmaybe-uninitialized in /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/BrowserElementProxyBinding.cpp: ‘t’ may be used uninitialized in this function
24:29.77 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/BrowserElementProxyBinding.cpp:4402:73: warning: ‘t’ may be used uninitialized in this function [-Wmaybe-uninitialized]
24:29.77    return mImpl->GetScreenshot(width, height, mimeType, aRv, aCompartment);
24:29.77                                                                          ^
24:29.77 In file included from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/AutocompleteErrorEvent.cpp:15:0,
24:29.77                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings1.cpp:2:
24:29.77 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/PrimitiveConversions.h:347:52: note: ‘t’ was declared here
24:29.77    typename PrimitiveConversionTraits<T, B>::jstype t;
24:29.77                                                     ^
24:29.77 In file included from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings1.cpp:194:0:
24:29.78 Warning: -Wmaybe-uninitialized in /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/BrowserElementProxyBinding.cpp: ‘t’ may be used uninitialized in this function
24:29.78 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/BrowserElementProxyBinding.cpp:4402:73: warning: ‘t’ may be used uninitialized in this function [-Wmaybe-uninitialized]
24:29.78    return mImpl->GetScreenshot(width, height, mimeType, aRv, aCompartment);
24:29.78                                                                          ^
24:29.78 In file included from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/AutocompleteErrorEvent.cpp:15:0,
24:29.78                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings1.cpp:2:
24:29.78 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/PrimitiveConversions.h:347:52: note: ‘t’ was declared here
24:29.78    typename PrimitiveConversionTraits<T, B>::jstype t;
24:29.78                                                     ^
24:29.78 UnifiedBindings13.o
24:35.71 In file included from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/KeyframeEffectBinding.cpp:11:0,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings10.cpp:98:
24:35.71 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/CSSPseudoElement.h: In member function ‘mozilla::dom::ParentObject mozilla::dom::CSSPseudoElement::GetParentObject() const’:
24:35.71 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/CSSPseudoElement.h:37:26: error: invalid use of incomplete type ‘class mozilla::dom::Element’
24:35.71      return mParentElement->GetParentObject();
24:35.71                           ^
24:35.71 In file included from /mnt/to_archive/accum/src/mozilla-central/js/xpconnect/src/xpcpublic.h:19:0,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/dom/base/nsJSEnvironment.h:19,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/CallbackObject.h:30,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/BindingUtils.h:20,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/GeneratedAtomList.h:6,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/dom/bindings/AtomList.h:11,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/InterAppConnectionBinding.cpp:3,
24:35.71                  from /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings10.cpp:2:
24:35.71 /mnt/to_archive/accum/src/mozilla-central/dom/base/nsPIDOMWindow.h:44:7: error: forward declaration of ‘class mozilla::dom::Element’
24:35.71  class Element;
24:35.71        ^
24:35.72 
24:35.72 In the directory  /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings
24:35.72 The following command failed to execute properly:
24:35.72 /bin/ccache c++ -o UnifiedBindings10.o -c -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/stl_wrappers -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/system_wrappers -include /mnt/to_archive/accum/src/mozilla-central/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DHAVE_SIDEBAR -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/mnt/to_archive/accum/src/mozilla-central/dom/bindings -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom -I/mnt/to_archive/accum/src/mozilla-central/dom/base -I/mnt/to_archive/accum/src/mozilla-central/dom/battery -I/mnt/to_archive/accum/src/mozilla-central/dom/bluetooth/common/webapi -I/mnt/to_archive/accum/src/mozilla-central/dom/camera -I/mnt/to_archive/accum/src/mozilla-central/dom/canvas -I/mnt/to_archive/accum/src/mozilla-central/dom/geolocation -I/mnt/to_archive/accum/src/mozilla-central/dom/html -I/mnt/to_archive/accum/src/mozilla-central/dom/indexedDB -I/mnt/to_archive/accum/src/mozilla-central/dom/media/webaudio -I/mnt/to_archive/accum/src/mozilla-central/dom/media/webspeech/recognition -I/mnt/to_archive/accum/src/mozilla-central/dom/svg -I/mnt/to_archive/accum/src/mozilla-central/dom/workers -I/mnt/to_archive/accum/src/mozilla-central/dom/xbl -I/mnt/to_archive/accum/src/mozilla-central/dom/xml -I/mnt/to_archive/accum/src/mozilla-central/dom/xslt/base -I/mnt/to_archive/accum/src/mozilla-central/dom/xslt/xpath -I/mnt/to_archive/accum/src/mozilla-central/dom/xul -I/mnt/to_archive/accum/src/mozilla-central/js/xpconnect/src -I/mnt/to_archive/accum/src/mozilla-central/js/xpconnect/wrappers -I/mnt/to_archive/accum/src/mozilla-central/layout/style -I/mnt/to_archive/accum/src/mozilla-central/layout/xul/tree -I/mnt/to_archive/accum/src/mozilla-central/media/mtransport -I/mnt/to_archive/accum/src/mozilla-central/media/webrtc -I/mnt/to_archive/accum/src/mozilla-central/media/webrtc/signaling/src/common/time_profiling -I/mnt/to_archive/accum/src/mozilla-central/media/webrtc/signaling/src/peerconnection -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/ipc/ipdl/_ipdlheaders -I/mnt/to_archive/accum/src/mozilla-central/ipc/chromium/src -I/mnt/to_archive/accum/src/mozilla-central/ipc/glue -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/nspr -I/mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/mozilla-config.h -MD -MP -MF .deps/UnifiedBindings10.o.pp -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wtype-limits -Wunreachable-code -Wcast-align -Wno-invalid-offsetof -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -g -O3 -fomit-frame-pointer /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/bindings/UnifiedBindings10.cpp
24:35.72 /mnt/to_archive/accum/src/mozilla-central/config/rules.mk:967: recipe for target 'UnifiedBindings10.o' failed
24:35.72 gmake[5]: *** [UnifiedBindings10.o] Error 1
24:35.72 gmake[5]: *** Waiting for unfinished jobs....


Expected results:

Successful compile
Component: Untriaged → XPCOM
Product: Firefox → Core
24:35.71 /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/mozilla/dom/CSSPseudoElement.h:37:26: error: invalid use of incomplete type ‘class mozilla::dom::Element’
24:35.71      return mParentElement->GetParentObject();

http://hg.mozilla.org/mozilla-central/annotate/d719ac4bcbec/dom/animation/CSSPseudoElement.h#l37

Probably a regression from bug 1174575, although unified builds is hiding it in most cases.
Blocks: 1174575
Component: XPCOM → DOM: Animation
Flags: needinfo?(boris.chiou)
Keywords: regression
(In reply to Mats Palmgren (:mats) from comment #1)
> 24:35.71
> /mnt/to_archive/accum/src/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/
> include/mozilla/dom/CSSPseudoElement.h:37:26: error: invalid use of
> incomplete type ‘class mozilla::dom::Element’
> 24:35.71      return mParentElement->GetParentObject();
> 
> http://hg.mozilla.org/mozilla-central/annotate/d719ac4bcbec/dom/animation/
> CSSPseudoElement.h#l37
> 
> Probably a regression from bug 1174575, although unified builds is hiding it
> in most cases.

OK. Let me handle this.
Flags: needinfo?(boris.chiou)
Assignee: nobody → boris.chiou
Comment on attachment 8719350 [details]
MozReview Request: Bug 1248105 - Move CSSPseudoElement::GetParentObject out of header, r?boris

https://reviewboard.mozilla.org/r/34935/#review31519

Thanks for fixing this bug.
Attachment #8719350 - Flags: review?(boris.chiou) → review+
Assignee: boris.chiou → martin.thomson
Nightly compiled successfully today.  Thanks.
https://hg.mozilla.org/mozilla-central/rev/50657066d1f6
Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.