Opened 3 years ago

Last modified 6 days ago

#7411 new bug

Exceptions are optimized away in certain situations

Reported by: SimonHengel Owned by:
Priority: high Milestone: 7.12.1
Component: Compiler Version: 7.6.1
Keywords: seq, deepseq, evaluate, exceptions Cc:
Operating System: Linux Architecture: x86_64 (amd64)
Type of failure: Incorrect result at runtime Test Case:
Blocked By: Blocking:
Related Tickets: #5129 Differential Revisions:

Description

The issue came up in this thread on glasgow-haskell-users.

Steps to reproduce:

-- file Foo.hs
import Control.Exception
import Control.DeepSeq
main = evaluate (('a' : undefined) `deepseq` return () :: IO ())
$ ghc -fforce-recomp -fpedantic-bottoms -O Foo.hs

Expected result:

The program should fail with:

Foo: Prelude.undefined

Actual result:

The program succeeds.

Compiling the program with -fno-state-hack helps.

Change History (6)

comment:1 Changed 2 years ago by igloo

  • difficulty set to Unknown
  • Milestone set to 7.8.1
  • Priority changed from normal to high

Thanks for the report.

comment:2 Changed 15 months ago by thoughtpolice

  • Milestone changed from 7.8.3 to 7.8.4

Moving to 7.8.4.

comment:3 Changed 11 months ago by thoughtpolice

  • Milestone changed from 7.8.4 to 7.10.1

Moving (in bulk) to 7.10.4

comment:4 Changed 8 months ago by thoughtpolice

  • Milestone changed from 7.10.1 to 7.12.1

Moving to 7.12.1

comment:5 Changed 8 days ago by thomie

comment:6 Changed 6 days ago by Ben Gamari <ben@…>

In 15cb83d4/ghc:

Add testcase for #7411
Note: See TracTickets for help on using tickets.