Skip to content

Cmm type mismatch in %MO_S_Shr_W8 application

text currently fails to build with -dcmm-lint:

$ _build/stage1/bin/ghc -O2 -dcore-lint -dstg-lint -dcmm-lint -ilibraries/text/src Data.Text.Lazy.Builder.Int -Ilibraries/text/include
...
[36 of 36] Compiling Data.Text.Lazy.Builder.Int ( libraries/text/src/Data/Text/Lazy/Builder/Int.hs, libraries/text/src/Data/Text/Lazy/Builder/Int.o )
Cmm lint error:
  in basic block cTTj
    in MachOp application: 
      %MO_S_Shr_W8(_sRS5::I8, 7 :: W8)
    op is expecting:  [W8, W64]
    arguments provide:  [I8, I8]
Program was:
  {offset
    cTTh: // global
        if ((Sp + -16) < SpLim) (likely: False) goto cTTi; else goto cTTj;
    cTTi: // global
        R1 = R1;
        call (stg_gc_enter_1)(R1) args: 8, res: 0, upd: 8;
    cTTj: // global
        I64[Sp - 16] = stg_upd_frame_info;
        P64[Sp - 8] = R1;
        _sRS5::I8 = I8[R1 + 16];
        R2 = %MO_XX_Conv_W8_W64(%MO_S_Shr_W8(_sRS5::I8 + %MO_S_Shr_W8(_sRS5::I8,
                                                                      7 :: W8) & 15 :: W8,
                                             4 :: W8));
        Sp = Sp - 16;
        call $wgo7_info(R2) args: 24, res: 0, upd: 24;
  }

<no location info>: error: 
Compilation had errors
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information