[GHC] #15970: Recompilation bug with default class methods

GHC ghc-devs at haskell.org
Tue Dec 11 23:21:06 UTC 2018


#15970: Recompilation bug with default class methods
-------------------------------------+-------------------------------------
        Reporter:  simonmar          |                Owner:  simonmar
            Type:  bug               |               Status:  patch
        Priority:  highest           |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.6.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D5394
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"288f681e06accbae690c46eb8a6e997fa9e5f56a/ghc" 288f681/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="288f681e06accbae690c46eb8a6e997fa9e5f56a"
 Fix recompilation bug with default class methods (#15970)

 If a module uses a class, then it can instantiate the class and
 thereby use its default methods, so we must include the default
 methods when calculating the fingerprint for the class.

 Test Plan:
 New unit test: driver/T15970

 Before:

 ```
 =====> T15970(normal) 1 of 1 [0, 0, 0]
 cd "T15970.run" && $MAKE -s --no-print-directory T15970
 Wrong exit code for T15970()(expected 0 , actual 2 )
 Stdout ( T15970 ):
 Makefile:13: recipe for target 'T15970' failed
 Stderr ( T15970 ):
 C.o:function Main_zdfTypeClassMyDataType1_info: error: undefined
 reference to 'A_toTypedData2_closure'
 C.o:function Main_main1_info: error: undefined reference to
 'A_toTypedData2_closure'
 C.o(.data+0x298): error: undefined reference to 'A_toTypedData2_closure'
 C.o(.data+0x480): error: undefined reference to 'A_toTypedData2_closure'
 collect2: error: ld returned 1 exit status
 `gcc' failed in phase `Linker'. (Exit code: 1)
 ```

 After: test passes.

 Reviewers: bgamari, simonpj, erikd, watashi, afarmer

 Subscribers: rwbarton, carter

 GHC Trac Issues: #15970

 Differential Revision: https://phabricator.haskell.org/D5394
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15970#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list