Thomas, I will submit a v3 patch in a few minutes. On Oct 1, 2014, at 9:57 AM, Wiles, Roger Keith <keith.wiles at windriver.com> wrote:
> Hi Thomas, > > Changing the macros to: > > #ifdef RTE_LIBRTE_MEMPOOL_DEBUG > #ifndef __INTEL_COMPILER > #pragma GCC diagnostic ignored "-Wcast-qual" > #endif > . > . > #ifndef __INTEL_COMPILER > #pragma GCC diagnostic error "-Wcast-qual" > #endif > > Works and is a good solution. I normally do not like negative ?ifndef? but it > works :-) > > Can you make that change if everyone agrees, as would have to remove other > changes to that file I want to do in the future to resend this patch. If not > I can try and figure it out :-) > > Thanks > ++Keith > > On Oct 1, 2014, at 7:58 AM, Thomas Monjalon <thomas.monjalon at 6wind.com> > wrote: > >> 2014-09-28 05:30, Wiles, Roger Keith: >>> 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. >>> >>> Signed-off-by: Keith Wiles <keith.wiles at windriver.com> >> [...] >>> -#ifndef __INTEL_COMPILER >>> +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) >>> #pragma GCC push_options >>> #pragma GCC diagnostic ignored "-Wcast-qual" >>> #endif >> >> Does clang accept const casting with -Wcast-qual? >> >> I'd prefer to use the same logic as in rte_mempool.c: >> #pragma GCC diagnostic ignored "-Wcast-qual" >> #pragma GCC diagnostic error "-Wcast-qual" >> without using push/pop. >> Or if push/pop is really needed, it is implemented in clang: >> >> http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas >> >> -- >> Thomas > > Keith Wiles, Principal Technologist with CTO office, Wind River mobile > 972-213-5533 > Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533