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 /src/Compile.hs | |
parent | c06b4bd71a94601d467b509a26c08020d1fbd794 (diff) |
Compile: Generate slightly less redundant C code
Diffstat (limited to 'src/Compile.hs')
-rw-r--r-- | src/Compile.hs | 9 |
1 files changed, 6 insertions, 3 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) |