зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1114267 - Part 2: Add MOZ_TRIVIAL_CTOR_DTOR to MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS in non-debug builds; r=jrmuizel
This commit is contained in:
Родитель
3b65f212d1
Коммит
89b6ff71bc
|
@ -499,6 +499,10 @@
|
||||||
* intended to prevent introducing static initializers. This attribute
|
* intended to prevent introducing static initializers. This attribute
|
||||||
* currently makes it a compile-time error to instantiate these classes
|
* currently makes it a compile-time error to instantiate these classes
|
||||||
* anywhere other than at the global scope, or as a static member of a class.
|
* anywhere other than at the global scope, or as a static member of a class.
|
||||||
|
* MOZ_TRIVIAL_CTOR_DTOR: Applies to all classes that must have both a trivial
|
||||||
|
* constructor and a trivial destructor. Setting this attribute on a class
|
||||||
|
* makes it a compile-time error for that class to get a non-trivial
|
||||||
|
* constructor or destructor for any reason.
|
||||||
* MOZ_HEAP_ALLOCATOR: Applies to any function. This indicates that the return
|
* MOZ_HEAP_ALLOCATOR: Applies to any function. This indicates that the return
|
||||||
* value is allocated on the heap, and will as a result check such allocations
|
* value is allocated on the heap, and will as a result check such allocations
|
||||||
* during MOZ_STACK_CLASS and MOZ_NONHEAP_CLASS annotation checking.
|
* during MOZ_STACK_CLASS and MOZ_NONHEAP_CLASS annotation checking.
|
||||||
|
@ -513,7 +517,14 @@
|
||||||
# define MOZ_MUST_OVERRIDE __attribute__((annotate("moz_must_override")))
|
# define MOZ_MUST_OVERRIDE __attribute__((annotate("moz_must_override")))
|
||||||
# define MOZ_STACK_CLASS __attribute__((annotate("moz_stack_class")))
|
# define MOZ_STACK_CLASS __attribute__((annotate("moz_stack_class")))
|
||||||
# define MOZ_NONHEAP_CLASS __attribute__((annotate("moz_nonheap_class")))
|
# define MOZ_NONHEAP_CLASS __attribute__((annotate("moz_nonheap_class")))
|
||||||
# define MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS __attribute__((annotate("moz_global_class")))
|
# define MOZ_TRIVIAL_CTOR_DTOR __attribute__((annotate("moz_trivial_ctor_dtor")))
|
||||||
|
# ifdef DEBUG
|
||||||
|
/* in debug builds, these classes do have non-trivial constructors. */
|
||||||
|
# define MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS __attribute__((annotate("moz_global_class")))
|
||||||
|
# else
|
||||||
|
# define MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS __attribute__((annotate("moz_global_class"))) \
|
||||||
|
MOZ_TRIVIAL_CTOR_DTOR
|
||||||
|
# endif
|
||||||
# define MOZ_IMPLICIT __attribute__((annotate("moz_implicit")))
|
# define MOZ_IMPLICIT __attribute__((annotate("moz_implicit")))
|
||||||
# define MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT __attribute__((annotate("moz_no_arith_expr_in_arg")))
|
# define MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT __attribute__((annotate("moz_no_arith_expr_in_arg")))
|
||||||
/*
|
/*
|
||||||
|
@ -530,6 +541,7 @@
|
||||||
# define MOZ_MUST_OVERRIDE /* nothing */
|
# define MOZ_MUST_OVERRIDE /* nothing */
|
||||||
# define MOZ_STACK_CLASS /* nothing */
|
# define MOZ_STACK_CLASS /* nothing */
|
||||||
# define MOZ_NONHEAP_CLASS /* nothing */
|
# define MOZ_NONHEAP_CLASS /* nothing */
|
||||||
|
# define MOZ_TRIVIAL_CTOR_DTOR /* nothing */
|
||||||
# define MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS /* nothing */
|
# define MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS /* nothing */
|
||||||
# define MOZ_IMPLICIT /* nothing */
|
# define MOZ_IMPLICIT /* nothing */
|
||||||
# define MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT /* nothing */
|
# define MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT /* nothing */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче