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