[dpdk-dev,v4] Clang compile error with RTE_LIBRTE_MEMPOOL_DEBUG enabled.

Message ID 1412489782-224822-1-git-send-email-keith.wiles@windriver.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Wiles, Roger Keith Oct. 5, 2014, 6:16 a.m. UTC
  When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
compiler an error occurs, because ifdefed code now includes GCC pragmas.

GCC 4.4 is when push_options and pop_options pragma show up.

Rework to include Thomas’s suggestion to drop push/pop pragma directives for
ignore/error directives.

Signed-off-by: Keith Wiles <keith.wiles@windriver.com>
---
 lib/librte_mempool/rte_mempool.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Thomas Monjalon Oct. 9, 2014, 6:26 p.m. UTC | #1
2014-10-05 01:16, Keith Wiles:
> When enabling RTE_LIBRTE_MEMPOOL_DEBUG and compiling with clang
> compiler an error occurs, because ifdefed code now includes GCC pragmas.
> 
> GCC 4.4 is when push_options and pop_options pragma show up.
> 
> Rework to include Thomas’s suggestion to drop push/pop pragma directives for
> ignore/error directives.
> 
> Signed-off-by: Keith Wiles <keith.wiles@windriver.com>

Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Applied

Thanks
  

Patch

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 95f19f9..163de86 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -313,7 +313,6 @@  static inline void __mempool_write_trailer_cookie(void *obj)
  */
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
 #ifndef __INTEL_COMPILER
-#pragma GCC push_options
 #pragma GCC diagnostic ignored "-Wcast-qual"
 #endif
 static inline void __mempool_check_cookies(const struct rte_mempool *mp,
@@ -380,7 +379,7 @@  static inline void __mempool_check_cookies(const struct rte_mempool *mp,
 	}
 }
 #ifndef __INTEL_COMPILER
-#pragma GCC pop_options
+#pragma GCC diagnostic error "-Wcast-qual"
 #endif
 #else
 #define __mempool_check_cookies(mp, obj_table_const, n, free) do {} while(0)