diff options
author | 2015-06-07 10:20:43 -0400 | |
---|---|---|
committer | 2015-06-07 12:02:20 -0400 | |
commit | 72794f8ff1c1e79bd0350bb52fb3757bdf04d004 (patch) | |
tree | 32c106a98cb62a31a7c4a6110d69b24bf4eefe7b | |
parent | 05a79d2e2011ec9efe711019b796634ef8d0cfb0 (diff) |
Use attribute unused for inlined new/delete. (nw)
This is still not compliant code, and will probably break with LTO,
but is a cleaner fix for the warning. Using this attribute also ensures
that the linker doesn't remove the code.
-rw-r--r-- | scripts/genie.lua | 1 | ||||
-rw-r--r-- | src/lib/util/corealloc.h | 8 | ||||
-rw-r--r-- | src/osd/osdcomm.h | 1 |
3 files changed, 5 insertions, 5 deletions
diff --git a/scripts/genie.lua b/scripts/genie.lua index bdd97f427c5..7a591db050b 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -923,7 +923,6 @@ end end if (version >= 30400) then buildoptions { - "-Wno-inline-new-delete", "-Wno-constant-logical-operand", } end diff --git a/src/lib/util/corealloc.h b/src/lib/util/corealloc.h index 5b002557769..a3f05ddd270 100644 --- a/src/lib/util/corealloc.h +++ b/src/lib/util/corealloc.h @@ -60,10 +60,10 @@ class zeromem_t { }; #ifndef NO_MEM_TRACKING // standard new/delete operators (try to avoid using) -ATTR_FORCE_INLINE inline void *operator new(std::size_t size) throw (std::bad_alloc) { return malloc_file_line(size, NULL, 0, false, true, false); } -ATTR_FORCE_INLINE inline void *operator new[](std::size_t size) throw (std::bad_alloc) { return malloc_file_line(size, NULL, 0, true, true, false); } -ATTR_FORCE_INLINE inline void operator delete(void *ptr) throw() { if (ptr != NULL) free_file_line(ptr, NULL, 0, false); } -ATTR_FORCE_INLINE inline void operator delete[](void *ptr) throw() { if (ptr != NULL) free_file_line(ptr, NULL, 0, true); } +ATTR_FORCE_INLINE ATTR_USED inline void *operator new(std::size_t size) throw (std::bad_alloc) { return malloc_file_line(size, NULL, 0, false, true, false); } +ATTR_FORCE_INLINE ATTR_USED inline void *operator new[](std::size_t size) throw (std::bad_alloc) { return malloc_file_line(size, NULL, 0, true, true, false); } +ATTR_FORCE_INLINE ATTR_USED inline void operator delete(void *ptr) throw() { if (ptr != NULL) free_file_line(ptr, NULL, 0, false); } +ATTR_FORCE_INLINE ATTR_USED inline void operator delete[](void *ptr) throw() { if (ptr != NULL) free_file_line(ptr, NULL, 0, true); } #endif diff --git a/src/osd/osdcomm.h b/src/osd/osdcomm.h index 2df16b8db02..e41d9663615 100644 --- a/src/osd/osdcomm.h +++ b/src/osd/osdcomm.h @@ -31,6 +31,7 @@ /* Some optimizations/warnings cleanups for GCC */ #if defined(__GNUC__) && (__GNUC__ >= 3) #define ATTR_UNUSED __attribute__((__unused__)) +#define ATTR_USED __attribute__((__used__)) #define ATTR_NORETURN __attribute__((noreturn)) #define ATTR_PRINTF(x,y) __attribute__((format(printf, x, y))) #define ATTR_MALLOC __attribute__((malloc)) |