Re: [PATCH] Make large enum constants unsigned
Stefan Kristiansson <[email protected]> Thu, 22 May 2014 10:10:02 +0300
| Newsgroups | gmane.comp.tools.cgen.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, May 22, 2014 at 09:52:50AM +0300, Stefan Kristiansson wrote: > > As for 'u' vs 'U', a 'U' is emitted in the .h file even if I put a 'u' > in the .scm. > If 'u' in the output is preferred, maybe someone can point out the > reason for this? > I found the reason, there's a 'string-upcase' a couple of rows above what the patch touches. I'm not sure getting around that is worth pursuing though? Anyway, below is the updated patch. 2014-05-22 Stefan Kristiansson <[email protected]> * enum.scm (gen-enum-decl): Emit 'U' after constants larger than #x80000000 Index: cgen/enum.scm =================================================================== RCS file: /cvs/src/src/cgen/enum.scm,v retrieving revision 1.13 diff -u -r1.13 enum.scm --- cgen/enum.scm 13 Feb 2010 03:39:15 -0000 1.13 +++ cgen/enum.scm 22 May 2014 07:09:00 -0000 @@ -298,7 +298,10 @@ "" (string-append " = " (if (number? (cadr e)) - (number->string (cadr e)) + (string-append (number->string (cadr e)) + (if (> (cadr e) + #x80000000) + "U" "")) (cadr e)))) )) (if (and san? include-sanitize-marker?)