
#10560: -f and -O options interact in non-obvious, order dependent ways -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect | Unknown/Multiple warning at compile-time | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by thomie): `gcc` does not care whether you put the `-fno` flag before or after the `-Ox` flag. {{{ $ gcc --version gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4 }}} {{{ $ cat test.c int factorial(int x) { if (x > 1) return x * factorial(x-1); else return 1; } }}} {{{ $ gcc test.c -S && grep call test.s call factorial $ gcc test.c -S -O2 && grep call test.s $ gcc test.c -S -O2 -fno-optimize-sibling-calls && grep call test.s call factorial $ gcc test.c -S -fno-optimize-sibling-calls -O2 && grep call test.s call factorial }}} This seems right to me. Sven, don't you think it would be least confusing to users if we followed `gcc` on this one. To George: {{{ ghc -fspecialise -fno-specialise <filename>.hs ghc -fno-specialise -fspecialise <filename>.hs }}} Please open a separate ticket if you want a warning for these. It's related to this ticket, but I think separating these will benefit the discussion here. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10560#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler