[Bug c/100920] New: bogus warn on -Wscalar-storage-order
george.thopas at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Jun 4 23:09:30 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100920
Bug ID: 100920
Summary: bogus warn on -Wscalar-storage-order
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: george.thopas at gmail dot com
Target Milestone: ---
/*
* trying to use -Wscalar-storage-order on latest git version
*
* https://gcc.gnu.org/g:401bd4adcfda9965363b1ac3ba7e1580f15d6883
*
* below test exposes what looks like 2 wrong warnings
* a warning on an union where everything is big-endian
* a warning on type less void pointer
*
* gcc -Werror test.c
*
* Thanks
*/
include <stddef.h>
struct s_1 {
int val;
} __attribute__((scalar_storage_order("big-endian")));
typedef struct s_1 t_1;
struct s_2 {
char val;
} __attribute__((scalar_storage_order("big-endian")));
typedef struct s_2 t_2;
struct s12 {
t_1 a[1];
t_2 b[1];
} __attribute__((scalar_storage_order("big-endian")));
typedef struct s12 t_s12;
/* Warning while everything is big-endian */
union u12 {
t_1 a[1];
t_2 b[1];
} __attribute__((scalar_storage_order("big-endian")));
typedef union u12 t_u12;
int main(void)
{
/* warning while assigning from a type less void pointer */
t_s12 *msg1 = __builtin_alloca(10);
t_u12 *msg2 = __builtin_alloca(10);
msg1->a[0].val=0;
msg2->a[0].val=0;
return 0;
More information about the Gcc-bugs
mailing list