on master help sign in
Add flags for gcc to treat signed ints in a predictable way
commite940e395f9a34bd721c0ca4298e7e2162389fef3 authorAndreas Bogk <andreas@andreas.org> dateSat 3 Aug 2013, 10:56 (13 years ago) parent3ad3bd6
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"