
#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): phab:D4423 #8472, #14406 | Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj):
I think it's fine for these src ticks to appear anywhere
As the Note in comment:2 says, our current story is {{{ Note [CoreSyn top-level string literals] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... It is important to note that top-level primitive string literals cannot be wrapped in Ticks, as is otherwise done with lifted bindings. CoreToStg expects to see just a plain (Lit (MachStr ...)) expression on the RHS of primitive string bindings; anything else and things break. CoreLint checks this invariant. }}} We could change this invariant, by allowing some (or maybe any) ticks around a top-level string literal. That's fine too! We can change the story, presumably by changing the invariant, and changing what `CoreToSTG` does somehow. But what change to `CoreToSTG`? Presumably by uconditionally discarding any ticks wrapped around a top-level literal string. But if we do that, how will GDB ever see that info? I'm ok with either way; but I'd like us to be clear. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14779#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler