
#14779: Compiling with -g fails -lint-core checks -------------------------------------+------------------------------------- Reporter: niteria | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: (Debugging) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #14122, #14123, | Differential Rev(s): #8472, #14406 | Wiki Page: | -------------------------------------+------------------------------------- Comment (by niteria): Agreed, this is too broad. I need `isTopLevel` as well. I didn't get here in a very principled way. I just saw that FloatOut was doing what I expected (not putting ticks), then after a Simplifier pass it was broken. I noticed that the floated out binding was touched by pre-inline-uncond and it prompted me to look at `preInlineUnconditionally`. I then vaguely recalled that we intend for these top level unboxed strings to stay floated, so it seemed like a good idea not to inline them. I forgot the top level part in my impromptu patch. Why do we end up with ticks after that? I don't know yet. But arguably, inlining a top level unboxed string literal is the first place where we went wrong. NB: With the fixed patch that does `isTopLevel` I'm able to compile GHC HEAD with `-g`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14779#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler