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/59850] Support sparse-style pointer address spaces (type attributes)


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

--- Comment #11 from Josh Triplett <josh at joshtriplett dot org> ---
(In reply to Tom Tromey from comment #10)
> Relatedly, could you say what the option "-Wcast-to-as" provides
> beyond the normal warnings about changing address spaces?
> I wonder if this is something I should be pulling in as well.
> "man sparse" doesn't really say much here.

/tmp$ cat test.c 
static void *p;
static __attribute__((address_space(1))) void *p2 = p;
static __attribute__((address_space(1))) void *p3 =
(__attribute__((address_space(1))) void *)p;
static __attribute__((address_space(1))) void *p4 =
(__attribute__((address_space(1),force)) void *)p;
/tmp$ ~/src/sparse/sparse -Waddress-space test.c 
test.c:2:53: warning: incorrect type in initializer (different address spaces)
test.c:2:53:    expected void <asn:1>*static [toplevel] p2
test.c:2:53:    got void *static [toplevel] p
/tmp$ ~/src/sparse/sparse -Waddress-space -Wcast-to-as test.c 
test.c:2:53: warning: incorrect type in initializer (different address spaces)
test.c:2:53:    expected void <asn:1>*static [toplevel] p2
test.c:2:53:    got void *static [toplevel] p
test.c:3:54: warning: cast adds address space to expression (<asn:1>)

Without -Wcast-to-as, you won't get a warning for unforced casts that add an
address space.

Personally, I'd actually suggest merging the two in GCC, and always issuing
both sets of warnings.  I'd also suggest including the warnings in GCC's -Wall,
given that you'll only see them if you explicitly use an address_space
attribute.


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