diff options
author | Sergei Trofimovich <siarheit@google.com> | 2017-01-29 18:39:48 +0000 |
---|---|---|
committer | Sergei Trofimovich <siarheit@google.com> | 2017-01-29 18:48:09 +0000 |
commit | 34a0205587c8c6017a26ddf7023e91789da2e81b (patch) | |
tree | 36f82fc0aaaa5d3dd652974bb830767c4ed3f227 /includes | |
parent | bc42e2b03a87e3f6c0d24584382f281c6580801b (diff) | |
download | haskell-34a0205587c8c6017a26ddf7023e91789da2e81b.tar.gz |
UNREG: fix "_bytes" string literal forward declaration
Typical UNREG build failure looks like that:
ghc-unreg/includes/Stg.h:226:46: error:
note: in definition of macro 'EI_'
#define EI_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
^
|
226 | #define EI_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
| ^
/tmp/ghc10489_0/ghc_3.hc:1754:6: error:
note: previous definition of 'ghczmprim_GHCziTypes_zdtcTyCon2_bytes' was here
char ghczmprim_GHCziTypes_zdtcTyCon2_bytes[] = "TyCon";
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
1754 | char ghczmprim_GHCziTypes_zdtcTyCon2_bytes[] = "TyCon";
| ^
As we see here "_bytes" string literals are defined as 'char []'
array, not 'StgWord []'.
The change special-cases "_bytes" string literals to have
correct declaration type.
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Diffstat (limited to 'includes')
-rw-r--r-- | includes/Stg.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/includes/Stg.h b/includes/Stg.h index f1949b1630..e3de331d3f 100644 --- a/includes/Stg.h +++ b/includes/Stg.h @@ -223,6 +223,7 @@ typedef StgInt I_; typedef StgWord StgWordArray[]; typedef StgFunPtr F_; +#define EB_(X) extern char X[] #define EI_(X) extern StgWordArray (X) GNU_ATTRIBUTE(aligned (8)) #define II_(X) static StgWordArray (X) GNU_ATTRIBUTE(aligned (8)) #define IF_(f) static StgFunPtr GNUC3_ATTRIBUTE(used) f(void) |