[Bug target/56263] New: [avr] Provide strict address-space checking
gjl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Feb 9 10:30:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56263
Bug #: 56263
Summary: [avr] Provide strict address-space checking
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
AssignedTo: gjl@gcc.gnu.org
ReportedBy: gjl@gcc.gnu.org
CC: demiurg_spb@freemail.ru
Target: avr
Created attachment 29401
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29401
Test case that shall error with strict address spaces
The intrinsic address spaces introduced with PR49868 are imlemented in such a
way that each address space is a subset of each other.
This allows code like follows to operate as expected and without warnings:
char read_char (const char *address, int data_in_flash)
{
if (data_in_flash)
return *(const __flash char*) address;
else
return *address;
}
Currently, targetm.addr_space_subset_p returns always true in order to allow
pointer casts like above without diagnostics.
avr.c:avr_addr_space_subset_p() could be implemented in such a way, that it
returns true iff the respective ASes are physical subsets of each other, and
not only if their address, regarded as number, are subsets.
In order not to change the current ABI, this can be achieved by a new command
line option like -maddr-space-subset that allows the user to pick the model of
his favor.
More information about the Gcc-bugs
mailing list