Skip to content

Commit

Permalink
Add support for west-const for variables
Browse files Browse the repository at this point in the history
West-const is `const int` whereas east-const is `int const`.
They mean the same thing and both can be present at the same time
(`const int const` means the same).

Global variables that are initialized do not seem to work for
knight-native failing with `Target label 1 is not valid` when running
`hex2`.
  • Loading branch information
Gtker committed Jan 17, 2025
1 parent 3f87432 commit 5f22f14
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 19 deletions.
3 changes: 2 additions & 1 deletion cc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2711,7 +2711,8 @@ void statement(void)
global_token = global_token->next;
}
else if((NULL != lookup_type(global_token->s, prim_types)) ||
match("struct", global_token->s))
match("struct", global_token->s) ||
match("const", global_token->s))
{
collect_local();
}
Expand Down
30 changes: 15 additions & 15 deletions test/test.answers
Original file line number Diff line number Diff line change
Expand Up @@ -209,14 +209,14 @@ fb69ed45b3dbb9da3a2425cde3acbc10746b90d367d998cd22fb495cd8498735 test/results/t
6881582a03436d319d498ee7e8507dac10ddeef51c99a3c3972eaeb4ff8efc57 test/results/test0027-riscv32-binary
0d1c90e68389fa6d23eac22aa3cdc990772eb0c0d9a7faa5e135b45162d38b4d test/results/test0027-riscv64-binary
04e75e83bcea38ba913117c4a4fd1dac5264321aa34eb40a934d6596b6bf7978 test/results/test0027-x86-binary
889558c55dc9900546957d789f72e7322dc6b34b03678f99be9165017e0c35b1 test/results/test0028-aarch64-binary
85e061d85dc5a89c1419d1fe5544c9faecc874629e8e10f92f9fd250adcf38a4 test/results/test0028-amd64-binary
cddae954ec3486707f9c7ea6643093c71cdf31feef6db33ad359432bffcc8252 test/results/test0028-armv7l-binary
7818c4382355883e524b3b5d54d0b8a57b7a627f8b858d22cac231ed96b6a549 test/results/test0028-knight-native-binary
9ed5dc1fb8881d2abb44ebb323d3f5656e60972e2b30f59e7cbc395f20a794fd test/results/test0028-knight-posix-binary
d9d621632b1a50de329b38a39cfff4a18abe47f2cd89a497345f4792407612b9 test/results/test0028-riscv32-binary
cd74ccf3a4cb56fe52c0106da92a8befd8628993efd9a74765125ff132653533 test/results/test0028-riscv64-binary
5d48068861e37244acbab80d2a59e5c4f947b2d638d6b5788e473c587ecbc674 test/results/test0028-x86-binary
e7a27a9ad2f740bde6cf935a6f8946fcda4b56a07c4db3597fdfe9b0a5cf62b7 test/results/test0028-aarch64-binary
e838d696f395c47265acc284a52171445b0f182545ae76868259838fc31a1c2c test/results/test0028-amd64-binary
924075757b04c31849ef849db242a03219d17fbf16be742e8c1f2192cf6b9fdc test/results/test0028-armv7l-binary
ca46f103807d43f4e582c2d4785693664dfcf8a3dcc7a84b81dd831b82c2de55 test/results/test0028-knight-native-binary
18a267639ed743a229ce1d2f90f568cccc29d3e6d48c4b0bf3b1d6e713dade4b test/results/test0028-knight-posix-binary
ec23867d7f738134fef47dbd37ab677da1660d433cb33cef89d2b34db67d96e5 test/results/test0028-riscv32-binary
d8a2960f6250fcc684011251005f8d291f8ec99f44aaee64fbcb5425188175c1 test/results/test0028-riscv64-binary
1ee9516f1f2a40cba30328edbf1bde251279161c5d9dd8608bbfaf785b1277a7 test/results/test0028-x86-binary
e369398fe85d31d4f20171fbad3a354e03a5e7000e51f3fb40926dbe21300cf6 test/results/test0029-aarch64-binary
4481e92fd98af077c0f8f9ae2d6849a077979657ff7dab58c0bfacbb34c9cb20 test/results/test0029-amd64-binary
b7bf774fa05b78b5abfbe90b1a4e3775e997f61ab586b6bf9a54a030045e356e test/results/test0029-armv7l-binary
Expand Down Expand Up @@ -287,10 +287,10 @@ e9fa237a2c4d945490563795fee3adeb394171d65a6025c952c818941d1b0ee6 test/results/t
e6bb2bfffabcb09bdf681fc63d03d039484e4ce3a8f6dcb4d616d6d02dc3d8c9 test/results/test0106-riscv32-binary
ee0044cd67ad632f99d532f1cbfca9ac6c29f2e07eedf28a71110bd67edc6fae test/results/test0106-riscv64-binary
d731bc662f99ba7413a10b112662083a3e1bf31e959e08dc84b57b23f3ef31a7 test/results/test0106-x86-binary
33da326c081aec467970777f3f0398a323a660ffd1eac4e58da497d133f48c94 test/results/test1000-aarch64-binary
7eabc4fa17cd826253666db749b29fb8ff6d8ae4bfd201b7fe240fb8234d0762 test/results/test1000-amd64-binary
7b9653534d46da6f2bccf4be2ab1dc6a643b3cec4ea3fb78a083fdb1f9b2ee7d test/results/test1000-armv7l-binary
b6fd07541fe69bc5b9376fa7ab98e3de44d6dcfc73ec48663e829624f027ab26 test/results/test1000-knight-posix-binary
101127c452a65f1489bc7ed687446769626db87a55e07d919f10324c7165754b test/results/test1000-riscv32-binary
37637351854a6163aff980fdf13f843abc83124e742c786b7a07f6ab840fc322 test/results/test1000-riscv64-binary
e83770287ee672fb3b91f9b597ed6cb4a95a08e1fee0adbf02974c9cd6e65588 test/results/test1000-x86-binary
1c27f1b811509e39035d6c9a18090c9ea2d9844f53b7f56b843e421afded2558 test/results/test1000-aarch64-binary
330fd30fd995ade25c60b87a3a6c1bbef19d0a1f99b3810b56e95d0e046f2b74 test/results/test1000-amd64-binary
2a7468ce8cd16d1edf37b1750b5f78cae45777d884b6a6c028499f900ed072b3 test/results/test1000-armv7l-binary
9ee0b557b568cc3e62c9df0d0b75f53cc3a5906948cd05cae2099f99b84ed2d0 test/results/test1000-knight-posix-binary
e765bf3961463adb8da900309a5c0e9200e486afde8dce0c25dfefeb928b6b67 test/results/test1000-riscv32-binary
077922fd5eaf5e0ab588f7bd9f1af8776ac19293753f588c41efbd9ec1f71e73 test/results/test1000-riscv64-binary
9a98eab4bbee19eb4f1ca1e56a9eaf5d72e45e4cd57c07b05d8319a8d0956e6c test/results/test1000-x86-binary
8 changes: 6 additions & 2 deletions test/test0028/assignment.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,14 @@
* along with M2-Planet. If not, see <http://www.gnu.org/licenses/>.
*/

const int unused;

int main() {
const int one = 1;
const int three = 3;
int a = 44;
a += 1;
a *= 3;
a += one;
a *= three;
a /= 4;
a %= 7;
a <<= 8;
Expand Down
2 changes: 1 addition & 1 deletion test/test1000/proof.answer
Original file line number Diff line number Diff line change
@@ -1 +1 @@
56f3c36219f77119146207d170d962e87ba66ab5284070800620a2519e3c4986 test/test1000/proof
3ac3701b3629e29275d53fca8481bda33cd976776323bf08c851c4ed31563ae7 test/test1000/proof

0 comments on commit 5f22f14

Please sign in to comment.