Closed Bug 1322461 Opened 8 years ago Closed 8 years ago

Fix nonmemmovable errors that clang plugin reports on Windows

Categories

(Developer Infrastructure :: Source Code Analysis, defect)

Unspecified
Windows
defect
Not set
normal

Tracking

(firefox53 fixed)

RESOLVED FIXED
mozilla53
Tracking Status
firefox53 --- fixed

People

(Reporter: ting, Assigned: ting)

References

Details

Attachments

(1 file, 1 obsolete file)

No description provided.
Attached file wip (obsolete) —
The error message: 13:53.64 c:/w/fx/mc/obj-stan/dist/include\nsTArray.h(706,34): error(clang): Cannot instantiate 'nsTArray_CopyChooser<mozilla::SourceBufferTask>' with non-memmovable template argument 'mozilla::SourceBufferTask' 13:53.64 struct MOZ_NEEDS_MEMMOVABLE_TYPE nsTArray_CopyChooser 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\nsTArray.h(844,42): note(clang): instantiation of 'nsTArray_CopyChooser<mozilla::SourceBufferTask>' requested here 13:53.64 : public nsTArray_base<Alloc, typename nsTArray_CopyChooser<E>::Type> 13:53.64 ^ 13:53.64 c:/w/fx/mc/dom/media/mediasource/SourceBufferTask.h(21,3): note(clang): 'mozilla::SourceBufferTask' is a non-memmove()able type because member 'mRefCnt' is a non-memmove()able type '::mozilla::ThreadSafeAutoRefCnt' 13:53.64 NS_INLINE_DECL_THREADSAFE_REFCOUNTING(SourceBufferTask); 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\nsISupportsImpl.h(527,79): note(clang): expanded from macro 'NS_INLINE_DECL_THREADSAFE_REFCOUNTING' 13:53.64 #define NS_INLINE_DECL_THREADSAFE_REFCOUNTING(_class, ...) \ 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\nsISupportsImpl.h(516,35): note(clang): expanded from macro '\ 13:53.64 NS_INLINE_DECL_THREADSAFE_REFCOUNTING_META' 13:53.64 ::mozilla::ThreadSafeAutoRefCnt mRefCnt; \ 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\nsISupportsImpl.h(319,20): note(clang): '::mozilla::ThreadSafeAutoRefCnt' is a non-memmove()able type because member 'mValue' is a non-memmove()able type 'Atomic<nsrefcnt>' (aka 'Atomic<unsigned int>') 13:53.64 Atomic<nsrefcnt> mValue; 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\mozilla/Atomics.h(650,7): note(clang): 'Atomic<nsrefcnt>' (aka 'Atomic<unsigned int>') is a non-memmove()able type because it inherits from a non-memmove()able type 'detail::AtomicBaseIncDec<unsigned int, (MemoryOrdering)2>' 13:53.64 class Atomic<T, Order, typename EnableIf<IsIntegral<T>::value && 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\mozilla/Atomics.h(596,7): note(clang): 'detail::AtomicBaseIncDec<unsigned int, (MemoryOrdering)2>' is a non-memmove()able type because it inherits from a non-memmove()able type 'AtomicBase<unsigned int, (mozilla::MemoryOrdering)2>' 13:53.64 class AtomicBaseIncDec : public AtomicBase<T, Order> 13:53.64 ^ 13:53.64 c:/w/fx/mc/obj-stan/dist/include\mozilla/Atomics.h(546,13): note(clang): 'AtomicBase<unsigned int, (mozilla::MemoryOrdering)2>' is a non-memmove()able type because member 'mValue' is a non-memmove()able type 'ValueType' (aka 'atomic<unsigned int>') 13:53.64 ValueType mValue; 13:53.64 ^ 13:53.64 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xxatomic(179,9): note(clang): 'ValueType' (aka 'atomic<unsigned int>') is a non-memmove()able type because it inherits from a non-memmove()able type '_Atomic_uint' (aka 'std::_Atomic_uint') 13:53.64 struct atomic<_ITYPE> 13:53.64 ^ 13:53.64 1 error generated.
Attachment #8817351 - Attachment is obsolete: true
Comment on attachment 8817531 [details] Bug 1322461 - Let nsTArray to use copy constructors for SourceBufferTask as it has non-memmovable member on Windows. https://reviewboard.mozilla.org/r/97780/#review98682
Attachment #8817531 - Flags: review?(ehsan) → review+
Assignee: nobody → janus926
Pushed by tchou@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6497732fb1cd Let nsTArray to use copy constructors for SourceBufferTask as it has non-memmovable member on Windows. r=Ehsan
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: