This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/18282] PR c/17384 patch causes regression from 3.4.2


------- Additional Comments From jakub at gcc dot gnu dot org  2004-11-03 07:45 -------
Seems the attribute worked before (and with the patch I posted on gcc-3_4-branch
as well) when used on a decl with enum type, but not when used on enum's typedef.

On the other side, current trunk works when it is used on the typedef, but not
when it is used on the decl:

typedef enum { B1 = 1, B2 = 2, B4 = 4, B8 = 8, B16 = 16 } B;
typedef enum { C1 = 1, C2 = 2, C4 = 4, C8 = 8, C16 = 16 } __attribute__ ((mode
(QI))) C;
typedef enum { D1 = 1, D2 = 2, D4 = 4, D8 = 8, D16 = 16 } __attribute__ ((mode
(word))) D;

B __attribute__ ((mode (QI))) bqi;
B __attribute__ ((mode (word))) bword;
int sqi[sizeof (bqi) == sizeof (int __attribute__((mode (QI)))) ? 1 : -1];
int sword[sizeof (bword) == sizeof (int __attribute__((mode (word)))) ? 1 : -1];
int sc[sizeof (C) == sizeof (int __attribute__((mode (QI)))) ? 1 : -1];
int sd[sizeof (D) == sizeof (int __attribute__((mode (word)))) ? 1 : -1];

GCC 3.3, 3.4.2, 3_4-branch + my patch:
I.c:10: error: size of array `sc' is negative
I.c:11: error: size of array `sd' is negative
GCC HEAD:
I.c:8: error: size of array 'sqi' is negative
I.c:9: error: size of array 'sword' is negative

If sizeof (bqi) == sizeof (int __attribute__((mode (QI)))) is supposed to be
1, then not applying the patch would mean there is a regression on 3_4-branch
and that is exactly the case DHCP is using, where apparently the mode was
not ignored.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18282


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]