summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Compile.hs9
-rw-r--r--src/Compile/Exec.hs3
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.