/* Generated by ./xlat/gen.sh from ./xlat/rtnl_addrlabel_attrs.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(IFAL_ADDRESS) || (defined(HAVE_DECL_IFAL_ADDRESS) && HAVE_DECL_IFAL_ADDRESS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IFAL_ADDRESS) == (1), "IFAL_ADDRESS != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IFAL_ADDRESS 1
#endif
#if defined(IFAL_LABEL) || (defined(HAVE_DECL_IFAL_LABEL) && HAVE_DECL_IFAL_LABEL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IFAL_LABEL) == (2), "IFAL_LABEL != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IFAL_LABEL 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_addrlabel_attrs in mpers mode

# else

static
const struct xlat rtnl_addrlabel_attrs[] = {
 XLAT(IFAL_ADDRESS),
 XLAT(IFAL_LABEL),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
