This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/56263] [avr] Provide strict address-space checking
- From: "demiurg_spb at freemail dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 20 Feb 2013 05:53:53 +0000
- Subject: [Bug target/56263] [avr] Provide strict address-space checking
- Auto-submitted: auto-generated
- References: <bug-56263-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56263
--- Comment #5 from demiurg_spb at freemail dot ru 2013-02-20 05:53:53 UTC ---
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> >
>
> It's a shortcoming in the Embedded C paper and I agree with you that more
> elaborate Embedded C paper would be more convenient here.
>
> There are two ways out of this:
>
> 1) Extend the Embedded C paper and propose an addendum to the ISO WG14.
>
> 2) Implement this extension no matter whether Embedded C comes with this
> extension. Find someone who implements this extension, supports it and makes
> sure there are no conflicts with the vanilla Embedded C.
>
> Notice that with the extension, in the following example "init" would be
> located in flash but "assign" would still be located in RAM.
>
> void f_init (void)
> {
> const __flash char *str = "init";
> }
>
> void f_assign (void)
> {
> const __flash char *str;
> str = "assign";
> }
In my view, in this situation, the data must be placed in a flash ...
Standard really needs serious improvement.
It's logical, when the right-hand and left-hand side of each other have the
appropriate type. Moreover, for the implementation of this simple idea is not
objective difficulties.