From 79920e874f1fa4191cd758fd6597d582fa52c447 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 30 Mar 2025 11:17:05 +0200 Subject: Compile: Generate slightly less redundant C code --- src/Compile.hs | 9 ++++++--- src/Compile/Exec.hs | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Compile.hs b/src/Compile.hs index b4261ca..7bbb043 100644 --- a/src/Compile.hs +++ b/src/Compile.hs @@ -1082,9 +1082,12 @@ compile' env = \case compileAssign :: String -> SList (Const String) env -> Ex env t -> CompM String compileAssign prefix env e = do e' <- compile' env e - name <- genName' prefix - emit $ SVarDecl True (repSTy (typeOf e)) name e' - return name + case e' of + CELit name -> return name + _ -> do + name <- genName' prefix + emit $ SVarDecl True (repSTy (typeOf e)) name e' + return name data Increment = Increment | Decrement deriving (Show) diff --git a/src/Compile/Exec.hs b/src/Compile/Exec.hs index 9b29486..5f90ea2 100644 --- a/src/Compile/Exec.hs +++ b/src/Compile/Exec.hs @@ -40,7 +40,8 @@ buildKernel csource funnames = do ,"-std=c99", "-x", "c" ,"-o", outso, "-" ,"-Wall", "-Wextra" - ,"-Wno-unused-variable", "-Wno-unused-parameter", "-Wno-unused-function"] + ,"-Wno-unused-variable", "-Wno-unused-but-set-variable" + ,"-Wno-unused-parameter", "-Wno-unused-function"] (ec, gccStdout, gccStderr) <- readProcessWithExitCode "gcc" args csource -- Print the source before the GCC output. -- cgit v1.2.3-70-g09d2