From 18b1c48a4cc16ff165bb98b6915e3c036d54d125 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Tue, 15 Sep 2015 13:08:10 +0100 Subject: [PATCH] Fixed MINGW builds where 'sizeof (int)' is equal to 'sizeof (long)'. --- re2c/src/codegen/skeleton/generate_code.cc | 34 ++++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/re2c/src/codegen/skeleton/generate_code.cc b/re2c/src/codegen/skeleton/generate_code.cc index 47083942..55da840e 100644 --- a/re2c/src/codegen/skeleton/generate_code.cc +++ b/re2c/src/codegen/skeleton/generate_code.cc @@ -6,23 +6,25 @@ namespace re2c static void exact_uint (OutputFile & o, size_t width) { - switch (width) + if (width == sizeof (char)) { - case sizeof (char): - o << "unsigned char"; - break; - case sizeof (short): - o << "unsigned short"; - break; - case sizeof (int): - o << "unsigned int"; - break; - case sizeof (long): - o << "unsigned long"; - break; - default: - o << "uint" << width * 8 << "_t"; - break; + o << "unsigned char"; + } + else if (width == sizeof (short)) + { + o << "unsigned short"; + } + else if (width == sizeof (int)) + { + o << "unsigned int"; + } + else if (width == sizeof (long)) + { + o << "unsigned long"; + } + else + { + o << "uint" << width * 8 << "_t"; } } -- 2.40.0