I run into a problem with Clang report problem when I tried to add another 
member to the static initializer of the following in file ixgbe_rxtx_vec.c

int
ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq)
{
        static struct rte_mbuf mb_def = {
                .nb_segs = 1,
                .data_off = RTE_PKTMBUF_HEADROOM,
                .reserved2 = 0x5555,
#ifdef RTE_MBUF_REFCNT
                { .refcnt = 1, }
#endif
        };

== Build lib/librte_pmd_ixgbe
  CC ixgbe_rxtx_vec.o
/home/keithw/projects/dpdk-code/dpdk/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:739:5:
 error: designator in initializer for scalar type 'uint16_t' (aka 'unsigned 
short')
                { .refcnt = 1, }
                  ^~~~~~~~~~~
1 error generated.

I moved the ?,? in the { } to outside and still the same problem.

int
ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq)
{
        static struct rte_mbuf mb_def = {
                .nb_segs = 1,
                .data_off = RTE_PKTMBUF_HEADROOM,
                .reserverd2 = (uint16_t)0x5555,
#ifdef RTE_MBUF_REFCNT
                { .refcnt = 1 },
#endif
        };

== Build lib/librte_pmd_ixgbe
  CC ixgbe_rxtx_vec.o
/home/keithw/projects/dpdk-code/dpdk/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:739:5:
 error: designator in initializer for scalar type 'uint16_t' (aka 'unsigned 
short')
                { .refcnt = 1 },
                  ^~~~~~~~~~~
1 error generated.

Without adding the ?.reserved2 = 0x5555,? it builds.

int
ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq)
{
        static struct rte_mbuf mb_def = {
                .nb_segs = 1,
                .data_off = RTE_PKTMBUF_HEADROOM,
                .reserverd2 = (uint16_t)0x5555,
#ifdef RTE_MBUF_REFCNT
                .refcnt = 1,
#endif
        };

Then I removed the {} and it now builds. Is this a result of the changes to the 
mbuf structure and Clang being picky?

Should I submit a patch to remove the ?{ }? values?

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 
972-213-5533

Reply via email to