While working on C2X support in the parser (and trying to fix some existing bugs in the parser already affecting earlier standards), it looks to me like SDCC painted itself into a corner with __using, __interrupt and __at.

I want to break compability (already did in the parser branch, but not in trunk).

Currently for each of these, a constant expression can follow them, and for __at, it must. This creates problems in the parser, and my proposed solution is to restrict these:

* For __using and __interrupt, the constant expression will be required to be parenthesized. * For __at, the constant expression will be required to be parenthesized or be just a plain constant.

I.e.

int __at 3+3 i;   // No longer allowed from SDCC 4.2.3
int __at 6 i;     // Still allowed
int __at (3+3) i; // Still allowed

Obviously, this will break some existing code.

Philipp


_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to