From da03a384c85b970d3e30b4eb1f2562481c32e963 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Fri, 1 Jan 2021 10:28:24 +0100 Subject: [PATCH] mescc: Respect integer literal type suffixes. * module/mescc/compile.scm (ast->type): Respect ULL, UL, U, LL, L suffix on integer literals. --- module/mescc/compile.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/module/mescc/compile.scm b/module/mescc/compile.scm index d9276d81..15ab6b14 100644 --- a/module/mescc/compile.scm +++ b/module/mescc/compile.scm @@ -1,5 +1,5 @@ ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2016,2017,2018,2019,2020,2021 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -116,7 +116,14 @@ ((char ,value) (get-type "char" info)) ((enum-ref . _) (get-type "default" info)) - ((fixed ,value) (get-type "default" info)) + ((fixed ,value) + (let ((type (cond ((string-suffix? "ULL"value) "unsigned long long") + ((string-suffix? "UL" value) "unsigned long") + ((string-suffix? "U" value) "unsigned") + ((string-suffix? "LL" value) "long long") + ((string-suffix? "L" value) "long") + (else "default")))) + (get-type type info))) ((float ,float) (get-type "float" info)) ((void) (get-type "void" info))