Skip to content

slow validate failure: unboxedsum3 stg lint failure

Reproduce with

hadrian/build test --freeze1  --docs=none --flavour=slow-validate --test-speed=slow --only="unboxedsums3"
Compile failed (exit code 1) errors were:
[1 of 2] Compiling Main             ( unboxedsums3.hs, unboxedsums3.o )

unboxedsums3.hs:11:16: warning: [-Wdeprecations (in -Wdefault)]
    In the use of type constructor or class ‘Void#’
    (imported from GHC.Types):
    Deprecated: "Void# is now an alias for the unboxed tuple (# #)."

unboxedsums3.hs:19:23: warning: [-Wdeprecations (in -Wdefault)]
    In the use of type constructor or class ‘Void#’
    (imported from GHC.Types):
    Deprecated: "Void# is now an alias for the unboxed tuple (# #)."
*** Stg Lint ErrMsgs: in Unarise ***
<no location info>: warning:
     [in body of lambda with binders ds_s2Ji :: D]
    Function type reps and function argument reps missmatched
      In application $wshowD [us_g2Ka, us_g2Kb, us_g2Kc, us_g2Kd,
                              us_g2Ke]
      argument rep:[LiftedRep]
      expected rep:[WordRep, LiftedRep, FloatRep]
      unarised?:True
*** Offending Program ***
f2 :: D -> (# Void | Float# #)
[GblId[[RecSel]], Arity=1, Str=<1!P(A,1L)>, Unf=OtherCon []] =
    \r [ds_s2IO]
        case ds_s2IO of {
        D us_g2JN us_g2JO us_g2JP us_g2JQ us_g2JR ->
        (#,,#) [us_g2JP us_g2JQ us_g2JR];
        };

f1 :: D -> (# Void# | (# #) | () #)
[GblId[[RecSel]], Arity=1, Str=<1!P(1L,A)>, Unf=OtherCon []] =
    \r [ds_s2IS]
        case ds_s2IS of {
        D us_g2JS us_g2JT us_g2JU us_g2JV us_g2JW ->
        (#,#) [us_g2JS us_g2JT];
        };

lvl_r2Ge :: Addr#
[GblId, Unf=OtherCon []] =
    "unboxedsums3.hs:(12,1)-(13,38)|function showAlt0"#;

showAlt2 :: ()
[GblId, Str=b, Cpr=b] =
    \u [] patError lvl_r2Ge;

main14 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# | (# #) | #)"#;

main13 :: [Char]
[GblId] =
    \u [] unpackCString# main14;

main12 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# | | () #)"#;

main11 :: [Char]
[GblId] =
    \u [] unpackCString# main12;

showAlt0 :: (# Void# | (# #) | () #) -> String
[GblId, Arity=1, Str=<1L>, Unf=OtherCon []] =
    \r [us_g2JX us_g2JY]
        case us_g2JX of tag_g2JZ {
          __DEFAULT -> showAlt2;
          2# -> main13;
          3# -> case us_g2JY of { () -> main11; };
        };

$trModule4 :: Addr#
[GblId, Unf=OtherCon []] =
    "main"#;

$trModule3 :: TrName
[GblId, Unf=OtherCon []] =
    TrNameS! [$trModule4];

$trModule2 :: Addr#
[GblId, Unf=OtherCon []] =
    "Main"#;

$trModule1 :: TrName
[GblId, Unf=OtherCon []] =
    TrNameS! [$trModule2];

$trModule :: Module
[GblId, Unf=OtherCon []] =
    Module! [$trModule3 $trModule1];

$tcD2 :: Addr#
[GblId, Unf=OtherCon []] =
    "D"#;

$tcD1 :: TrName
[GblId, Unf=OtherCon []] =
    TrNameS! [$tcD2];

$tcD :: TyCon
[GblId, Unf=OtherCon []] =
    TyCon! [2478211139812765157##64
            8067119037829273873##64
            $trModule
            $tcD1
            0#
            krep$*];

main10 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# Void | #)"#;

main9 :: [Char]
[GblId] =
    \u [] unpackCString# main10;

main6 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# | "#;

main5 :: Addr#
[GblId, Unf=OtherCon []] =
    "# #)"#;

main4 :: [Char]
[GblId] =
    \u [] unpackCString# main5;

showAlt1 :: (# Void | Float# #) -> String
[GblId, Arity=1, Str=<1L>, Unf=OtherCon []] =
    \r [us_g2K0 us_g2K1 us_g2K2]
        case us_g2K0 of tag_g2K3 {
          __DEFAULT -> main9;
          2# ->
              let {
                sat_s2J8 [Occ=Once1, Dmd=ML] :: [Char]
                [LclId] =
                    \s []
                        let {
                          sat_s2J6 [Occ=Once1] :: Float
                          [LclId] =
                              F#! [us_g2K2];
                        } in 
                          case
                              $fShowFloat_$sshowSignedFloat $fShowFloat2 minExpt sat_s2J6 []
                          of
                          sat_s2J7 [Occ=Once1]
                          {
                          __DEFAULT -> ++ sat_s2J7 main4;
                          };
              } in  unpackAppendCString# main6 sat_s2J8;
        };

main7 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# | (# #) | #)\n"#;

showD1 :: Addr#
[GblId, Unf=OtherCon []] =
    "(# | | () #)\n"#;

$wshowD [InlPrag=[2]]
  :: (# Void# | (# #) | () #) -> (# Void | Float# #) -> String
[GblId[StrictWorker([])], Arity=2, Str=<1L><ML>, Unf=OtherCon []] =
    \r [us_g2K4 us_g2K5 us_g2K6 us_g2K7 us_g2K8]
        case us_g2K4 of tag_g2K9 {
          __DEFAULT -> showAlt2;
          2# ->
              let {
                sat_s2Je [Occ=Once1, Dmd=ML] :: String
                [LclId] =
                    \s [] showAlt1 us_g2K6 us_g2K7 us_g2K8;
              } in  unpackAppendCString# main7 sat_s2Je;
          3# ->
              case us_g2K5 of {
              () ->
              let {
                sat_s2Jh [Occ=Once1, Dmd=ML] :: String
                [LclId] =
                    \s [] showAlt1 us_g2K6 us_g2K7 us_g2K8;
              } in  unpackAppendCString# showD1 sat_s2Jh;
              };
        };

showD [InlPrag=[2]] :: D -> String
[GblId, Arity=1, Str=<1!P(1L,ML)>, Unf=OtherCon []] =
    \r [ds_s2Ji]
        case ds_s2Ji of {
        D us_g2Ka us_g2Kb us_g2Kc us_g2Kd us_g2Ke ->
        $wshowD us_g2Ka us_g2Kb us_g2Kc us_g2Kd us_g2Ke;
        };

sat_s2Jo [Dmd=ML] :: [Char]
[LclId] =
    \s []
        let {
          sat_s2Jm [Occ=Once1] :: Float
          [LclId] =
              F#! [1.2#];
        } in 
          case
              $fShowFloat_$sshowSignedFloat $fShowFloat2 minExpt sat_s2Jm []
          of
          sat_s2Jn [Occ=Once1]
          {
          __DEFAULT -> ++ sat_s2Jn main4;
          };

main3 :: String
[GblId] =
    \u [] unpackAppendCString# main6 sat_s2Jo;

main2 :: [Char]
[GblId] =
    \u [] unpackAppendCString# main7 main3;

sat_s2Jr [Dmd=ML] :: [Char]
[LclId] =
    \s []
        let {
          sat_s2Jp [Occ=Once1] :: Float
          [LclId] =
              F#! [8.1#];
        } in 
          case
              $fShowFloat_$sshowSignedFloat $fShowFloat2 minExpt sat_s2Jp []
          of
          sat_s2Jq [Occ=Once1]
          {
          __DEFAULT -> ++ sat_s2Jq main4;
          };

main8 :: String
[GblId] =
    \u [] unpackAppendCString# main6 sat_s2Jr;

$wmain [InlPrag=[2]] :: State# RealWorld -> State# RealWorld
[GblId, Arity=1, Str=<L>, Unf=OtherCon []] =
    \r [void_0E]
        case hPutStr2 stdout main13 True void# of {
        Solo# _ [Occ=Dead] ->
        case hPutStr2 stdout main11 True void# of {
        Solo# _ [Occ=Dead] ->
        case hPutStr2 stdout main9 True void# of {
        Solo# _ [Occ=Dead] ->
        case hPutStr2 stdout main8 True void# of {
        Solo# _ [Occ=Dead] ->
        case hPutStr2 stdout main2 True void# of {
        Solo# _ [Occ=Dead] ->
        case __ffi_static_ccall_safe base:performMajorGC :: [void#] of {
        (##) -> (##) [];
        };
        };
        };
        };
        };
        };

main1 [InlPrag=[2]]
  :: State# RealWorld -> (# State# RealWorld, () #)
[GblId, Arity=1, Str=<L>, Cpr=1(, 1), Unf=OtherCon []] =
    \r [void_0E]
        case $wmain void# of ww_s2JM [Occ=Once1] { (##) -> Solo# [()]; };

main :: IO ()
[GblId, Arity=1, Str=<L>, Cpr=1(, 1), Unf=OtherCon []] =
    \r [void_0E] main1 void#;

main15 :: State# RealWorld -> (# State# RealWorld, () #)
[GblId, Arity=1, Str=<L>, Unf=OtherCon []] =
    \r [void_0E] runMainIO1 main1 void#;

main :: IO ()
[GblId, Arity=1, Str=<L>, Unf=OtherCon []] =
    \r [void_0E] main15 void#;

D [InlPrag=CONLIKE]
  :: (# Void# | (# #) | () #) %1 -> (# Void | Float# #) %1 -> D
[GblId[DataCon], Arity=2, Caf=NoCafRefs, Unf=OtherCon []] =
    \r [us_g2Kf us_g2Kg us_g2Kh us_g2Ki us_g2Kj]
        D [us_g2Kf us_g2Kg us_g2Kh us_g2Ki us_g2Kj];
*** End of Offense ***


<no location info>: error: 
Compilation had errors



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