__same_type
BUILD_BUG_ON_MSG(__same_type(current_config->name, bool), \
BUILD_BUG_ON_MSG(__same_type(current_config->name, bool), \
BUILD_BUG_ON_MSG(__same_type(current_config->name, bool), \
BUILD_BUG_ON_MSG(!__same_type(current_config->name, bool), \
BUILD_BUG_ON_MSG(!__same_type(*(ptr), typeof_member(type, member)) && \
!__same_type(*(ptr), void), \
BUILD_BUG_ON(!__same_type(srp_cmd->add_data[0], (s8)0) &&
!__same_type(srp_cmd->add_data[0], (u8)0));
BUILD_BUG_ON_ZERO(!__same_type( \
BUILD_BUG_ON(!__same_type(srp_cmd->add_data[0], (s8)0)
&& !__same_type(srp_cmd->add_data[0], (u8)0));
static_assert(__same_type(arg->out_devid, df->devid));
static_assert(__same_type(arch_##name, generic_##name) && \
__same_type(const_##name, generic_##name) && \
__same_type(_##name, generic_##name))
static_assert(__same_type(struct cache_coherency_ops_inst, \
#define __is_array(a) (!__same_type((a), &(a)[0]))
static_assert(__same_type(*(ptr), ((type *)0)->member) || \
__same_type(*(ptr), void), \
static_assert(__same_type(struct fwctl_device, \
BUILD_BUG_ON(__same_type((__addr), struct page *)); \
BUILD_BUG_ON(__same_type((__addr), struct page *)); \
static_assert(__same_type(initcall_t, &fn));
BUILD_BUG_ON_ZERO(!__same_type(struct iommufd_viommu, \
BUILD_BUG_ON_ZERO(!__same_type(struct iommufd_vdevice, \
BUILD_BUG_ON_ZERO(!__same_type(struct iommufd_hw_queue, \
static_assert(__same_type(struct iommufd_hw_queue, \
static_assert(__same_type(typeof(*dependent), *depended)); \
static_assert(__same_type(struct iommufd_hw_queue, \
static_assert(__same_type(typeof(*dependent), *depended)); \
__same_type(n, T))
BUILD_BUG_ON_MSG(!__same_type(*(a), *(b)), \
#define __TYPE_AS(t, v) __same_type((__force t)0, v)
static_assert(__same_type(priv, u64)); \
!__same_type(((struct drv_struct *)NULL)->member, \
BUILD_BUG_ON_ZERO(!__same_type(u32, \
BUILD_BUG_ON(!__same_type(&__htab_map_lookup_elem,
BUILD_BUG_ON(!__same_type(&__htab_map_lookup_elem,
BUILD_BUG_ON(!__same_type(&__htab_map_lookup_elem,
BUILD_BUG_ON(!__same_type(&__htab_map_lookup_elem,
BUILD_BUG_ON(!__same_type(ops->map_lookup_elem,
BUILD_BUG_ON(!__same_type(ops->map_delete_elem,
BUILD_BUG_ON(!__same_type(ops->map_update_elem,
BUILD_BUG_ON(!__same_type(ops->map_push_elem,
BUILD_BUG_ON(!__same_type(ops->map_pop_elem,
BUILD_BUG_ON(!__same_type(ops->map_peek_elem,
BUILD_BUG_ON(!__same_type(ops->map_redirect,
BUILD_BUG_ON(!__same_type(ops->map_for_each_callback,
BUILD_BUG_ON(!__same_type(ops->map_lookup_percpu_elem,
if (__same_type(*(b), struct ring_buffer_per_cpu)) { \
KUNIT_EXPECT_EQ(test, true, __same_type(t1, __t1h)); \
KUNIT_EXPECT_EQ(test, true, __same_type(t1, __t1l)); \
KUNIT_EXPECT_EQ(test, true, __same_type(__t1h, t1)); \
KUNIT_EXPECT_EQ(test, true, __same_type(__t1l, t1)); \
KUNIT_EXPECT_EQ(test, true, __same_type(t2, __t2h)); \
KUNIT_EXPECT_EQ(test, true, __same_type(t2, __t2l)); \
KUNIT_EXPECT_EQ(test, true, __same_type(__t2h, t2)); \
KUNIT_EXPECT_EQ(test, true, __same_type(__t2l, t2)); \
KUNIT_EXPECT_EQ(test, same, __same_type(t1, t2)); \
KUNIT_EXPECT_EQ(test, same, __same_type(t2, __t1h)); \
KUNIT_EXPECT_EQ(test, same, __same_type(t2, __t1l)); \
KUNIT_EXPECT_EQ(test, same, __same_type(__t1h, t2)); \
KUNIT_EXPECT_EQ(test, same, __same_type(__t1l, t2)); \
KUNIT_EXPECT_EQ(test, same, __same_type(t1, __t2h)); \
KUNIT_EXPECT_EQ(test, same, __same_type(t1, __t2l)); \
KUNIT_EXPECT_EQ(test, same, __same_type(__t2h, t1)); \
KUNIT_EXPECT_EQ(test, same, __same_type(__t2l, t1)); \
KUNIT_EXPECT_TRUE(test, __same_type(var++, int));
KUNIT_EXPECT_TRUE(test, __same_type(int, var++));
KUNIT_EXPECT_TRUE(test, __same_type(var++, var++));
SKIP_64_ON_32(__same_type(t, u64)); \
SKIP_64_ON_32(__same_type(t, s64)); \
SKIP_SIGN_MISMATCH(__same_type(n ## _tests[0].a, u32) && \
__same_type(n ## _tests[0].b, u32) && \
__same_type(n ## _tests[0].sum, int)); \
_Static_assert(__same_type(*(ptr), ((type *)0)->member) || \
__same_type(*(ptr), void), \
BUILD_BUG_ON(!__same_type(
#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
#ifndef __same_type