on master help sign in
Merge pull request #438 from andreas23/master

Add flags for gcc to treat signed ints in a predictable way

commit9d8916c971c390c92116e544bc7526dffa78bb9b authorEdwin Brady <edwin.brady@gmail.com> dateWed 7 Aug 2013, 04:02 (13 years ago) parent50e0bd1e940e39
1 file changed+6−1
src/IRTS/CodegenC.hs+6−1
src/IRTS/CodegenC.hs+6−1
@@ -47,7 +47,8 @@ codegenC defs out exec incs objs libs dbg
4747 libFlags <- getLibFlags
4848 incFlags <- getIncFlags
4949 let gcc = comp ++ " " ++
50− gccDbg dbg ++
50+ gccDbg dbg ++ " " ++
51+ gccFlags ++
5152 " -I. " ++ objs ++ " -x c " ++
5253 (if (exec == Executable) then "" else " -c ") ++
5354 " " ++ tmpn ++
@@ -68,6 +69,10 @@ headers xs =
6869debug TRACE = "#define IDRIS_TRACE\n\n"
6970debug _ = ""
7071
72+-- We're using signed integers now. Make sure we get consistent semantics
73+-- out of them from gcc. See e.g. http://thiemonagel.de/2010/01/signed-integer-overflow/
74+gccFlags = " -fwrapv -fno-strict-overflow"
75+
7176gccDbg DEBUG = "-g"
7277gccDbg TRACE = "-O2"
7378gccDbg _ = "-O2"