on master help sign in
Fix Char literal matching in C codegen
9857679Melvar Chen
src/IRTS/CodegenC.hs+1−1
@@ -201,7 +201,7 @@ bcc i (CONSTCASE r code def)
201 indent i ++ "if (GETINT(" ++ v ++ ") == " ++ show b ++ ") {\n"
201 indent i ++ "if (GETINT(" ++ v ++ ") == " ++ show b ++ ") {\n"
202 ++ concatMap (bcc (i+1)) bc ++ indent i ++ "} else\n"
202 ++ concatMap (bcc (i+1)) bc ++ indent i ++ "} else\n"
203 iCase v (Ch b, bc) =
203 iCase v (Ch b, bc) =
204− indent i ++ "if (GETINT(" ++ v ++ ") == " ++ show b ++ ") {\n"
204+ indent i ++ "if (GETINT(" ++ v ++ ") == " ++ show (fromEnum b) ++ ") {\n"
205 ++ concatMap (bcc (i+1)) bc ++ indent i ++ "} else\n"
205 ++ concatMap (bcc (i+1)) bc ++ indent i ++ "} else\n"
206
206
207 showCase i (t, bc) = indent i ++ "case " ++ show t ++ ":\n"
207 showCase i (t, bc) = indent i ++ "case " ++ show t ++ ":\n"