diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-03-30 11:17:05 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-03-30 11:17:05 +0200 |
commit | 79920e874f1fa4191cd758fd6597d582fa52c447 (patch) | |
tree | 8efe52b10a1379d52c6e0841593404d4fb298d40 | |
parent | c06b4bd71a94601d467b509a26c08020d1fbd794 (diff) |
Compile: Generate slightly less redundant C code
-rw-r--r-- | src/Compile.hs | 9 | ||||
-rw-r--r-- | 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. |