CONFIG_ARGO=y
CONFIG_UBSAN=y
CONFIG_UBSAN_FATAL=y
+ CONFIG_STACK_PROTECTOR=y
debian-12-x86_64-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: debian:bookworm-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
+ EXTRA_XEN_CONFIG: |
+ CONFIG_UBSAN=y
+ CONFIG_UBSAN_FATAL=y
+ CONFIG_STACK_PROTECTOR=y
debian-bookworm-gcc-arm32-debug:
extends: .gcc-arm32-cross-build-debug
variables:
CONTAINER: debian:bookworm-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
+ EXTRA_XEN_CONFIG: |
+ CONFIG_UBSAN=y
+ CONFIG_UBSAN_FATAL=y
+ CONFIG_STACK_PROTECTOR=y
debian-bookworm-gcc-arm32-randconfig:
extends: .gcc-arm32-cross-build
extends: .gcc-arm64-build
variables:
CONTAINER: alpine:3.18-arm64v8
+ EXTRA_XEN_CONFIG: |
+ CONFIG_UBSAN=y
+ CONFIG_UBSAN_FATAL=y
+ CONFIG_STACK_PROTECTOR=y
alpine-3.18-gcc-debug-arm64:
extends: .gcc-arm64-build-debug
EXTRA_XEN_CONFIG: |
CONFIG_UBSAN=y
CONFIG_UBSAN_FATAL=y
+ CONFIG_STACK_PROTECTOR=y
alpine-3.18-gcc-arm64-randconfig:
extends: .gcc-arm64-build
write_lock_irqsave(&prv->lock, flags);
rqd_ins = &prv->rql;
+
+#if 1
list_for_each_entry ( rqd, &prv->rql, rql )
+#else
+ for ( (rqd) = ({
+ typeof(((typeof(*(rqd)) *)((void*)0))->rql) *__mptr =
+ ((&prv->rql)->next);
+ (typeof(*(rqd)) *)
+ ((char *)__mptr -
+ __builtin_offsetof(typeof(*(rqd)),rql) );
+ });
+ &(rqd)->rql !=
+ (&prv->rql);
+ (rqd) = ({
+ typeof(((typeof(*(rqd)) *)((void*)0))->rql) *__mptr =
+ ((rqd)->rql.next);
+ (typeof(*(rqd)) *)
+ ((char *)__mptr -
+ __builtin_offsetof(typeof(*(rqd)),rql) );
+ })
+ )
+#endif
{
/* Remember first unused queue index. */
if ( !rqi_unused && rqd->id > rqi )
*
*/
#define container_of(ptr, type, member) ({ \
- typeof_field(type, member) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
+ void *__mptr = (void *)(ptr); \
+ (type *)(__mptr - offsetof(type , member)); })
/**
* __struct_group() - Create a mirrored named and anonyomous struct