From 8d3441fcf86d41de494388e86ab32381d5e204f6 Mon Sep 17 00:00:00 2001
From: Sylvain Henry <sylvain@haskus.fr>
Date: Thu, 3 Dec 2020 19:35:44 +0100
Subject: [PATCH] Fix for sized primitives

---
 Cabal/src/Distribution/Fields/Lexer.hs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Cabal/src/Distribution/Fields/Lexer.hs b/Cabal/src/Distribution/Fields/Lexer.hs
index d28e8b987b..95ced4d180 100644
--- a/Cabal/src/Distribution/Fields/Lexer.hs
+++ b/Cabal/src/Distribution/Fields/Lexer.hs
@@ -455,6 +455,15 @@ alex_scan_tkn user__ orig_input len input__ s last_acc =
 
       case fromIntegral c of { (I# (ord_c)) ->
         let
+#if __GLASGOW_HASKELL__ >= 901
+                base   = extendInt32# (alexIndexInt32OffAddr alex_base s)
+                offset = (base +# ord_c)
+                check  = extendInt16# (alexIndexInt16OffAddr alex_check offset)
+
+                new_s = if GTE(offset,0#) && EQ(check,ord_c)
+                          then extendInt16# (alexIndexInt16OffAddr alex_table offset)
+                          else extendInt16# (alexIndexInt16OffAddr alex_deflt s)
+#else
                 base   = alexIndexInt32OffAddr alex_base s
                 offset = (base +# ord_c)
                 check  = alexIndexInt16OffAddr alex_check offset
@@ -462,6 +471,7 @@ alex_scan_tkn user__ orig_input len input__ s last_acc =
                 new_s = if GTE(offset,0#) && EQ(check,ord_c)
                           then alexIndexInt16OffAddr alex_table offset
                           else alexIndexInt16OffAddr alex_deflt s
+#endif
         in
         case new_s of
             -1# -> (new_acc, input__)
-- 
GitLab