http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59850
--- Comment #17 from Tom Tromey <tromey at gcc dot gnu.org> --- It seems that "force" works on function parameters and casts but not direct assignments: bapiya. nl -ba /tmp/q.c 1 #define A(N) __attribute__((address_space (N))) 2 #define force __attribute__((force)) 3 4 force int *ok; 5 A(1) int *nope; 6 7 void g(force int *p) 8 { 9 ok = p; 10 } 11 12 void f(void) 13 { 14 g(nope); 15 ok = nope; 16 } bapiya. ./sparse -Wno-decl -Waddress-space /tmp/q.c /tmp/q.c:15:6: warning: incorrect type in assignment (different address spaces) /tmp/q.c:15:6: expected int *[addressable] [toplevel] [assigned] ok /tmp/q.c:15:6: got int <asn:1>*[addressable] [toplevel] nope (This is using git master sparse from today)