eal: fix C++17 compilation

Compiling a C++ application that includes directly or indirectly
rte_common.h will cause a warning:

include/rte_common.h:350:37: warning: ISO C++17 does not allow
  ‘register’ storage class specifier [-Wregister]
 rte_combine32ms1b(register uint32_t x)

C++ is pickier than standard C and flags this antique usage.

The register keyword is an old K&R legacy and should be removed
everywhere in DPDK. For now, fix it where it hurts.

Fixes: 08f683174e94 ("eal: add functions for previous power of 2 alignment")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
Stephen Hemminger 2020-05-08 16:25:05 -07:00 committed by David Marchand
parent 05a38d7c75
commit 3a2cd6fd06

View File

@ -409,7 +409,7 @@ __extension__ typedef uint64_t RTE_MARKER64[0];
* The combined value. * The combined value.
*/ */
static inline uint32_t static inline uint32_t
rte_combine32ms1b(register uint32_t x) rte_combine32ms1b(uint32_t x)
{ {
x |= x >> 1; x |= x >> 1;
x |= x >> 2; x |= x >> 2;
@ -431,7 +431,7 @@ rte_combine32ms1b(register uint32_t x)
* The combined value. * The combined value.
*/ */
static inline uint64_t static inline uint64_t
rte_combine64ms1b(register uint64_t v) rte_combine64ms1b(uint64_t v)
{ {
v |= v >> 1; v |= v >> 1;
v |= v >> 2; v |= v >> 2;