From: qrczak Date: Wed, 29 Aug 2001 17:24:25 +0000 (+0000) Subject: [project @ 2001-08-29 17:24:25 by qrczak] X-Git-Tag: Approximately_9120_patches~1049 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=aa84d93a9a3a3ff9b606ce24b6c73f5f06ff2c0a;p=ghc-hetmet.git [project @ 2001-08-29 17:24:25 by qrczak] Remove annoying warnings about using a deprecated extension when compiling via gcc-3.0. #if __GNUC__ >= 3 /* Assume that a flexible array member at the end of a struct * can be defined thus: T arr[]; */ #define FLEXIBLE_ARRAY #else /* Assume that it must be defined thus: T arr[0]; */ #define FLEXIBLE_ARRAY 0 #endif A test program (hsking) compiled fine with gcc-3.0! --- diff --git a/ghc/includes/Closures.h b/ghc/includes/Closures.h index 855b728..982b28f 100644 --- a/ghc/includes/Closures.h +++ b/ghc/includes/Closures.h @@ -1,5 +1,5 @@ /* ---------------------------------------------------------------------------- - * $Id: Closures.h,v 1.26 2001/02/11 17:51:08 simonmar Exp $ + * $Id: Closures.h,v 1.27 2001/08/29 17:24:25 qrczak Exp $ * * (c) The GHC Team, 1998-1999 * @@ -139,7 +139,7 @@ typedef struct { struct StgClosure_ { StgHeader header; - struct StgClosure_ *payload[0]; + struct StgClosure_ *payload[FLEXIBLE_ARRAY]; }; /* What a stroke of luck - all our mutable closures follow the same @@ -152,7 +152,7 @@ typedef struct StgMutClosure_ { StgHeader header; StgWord padding; struct StgMutClosure_ *mut_link; - struct StgClosure_ *payload[0]; + struct StgClosure_ *payload[FLEXIBLE_ARRAY]; } StgMutClosure; typedef struct { @@ -164,14 +164,14 @@ typedef struct { StgHeader header; StgWord n_args; StgClosure *fun; - StgClosure *payload[0]; + StgClosure *payload[FLEXIBLE_ARRAY]; } StgPAP; typedef struct { StgHeader header; StgWord n_args; StgClosure *fun; - StgClosure *payload[0]; + StgClosure *payload[FLEXIBLE_ARRAY]; } StgAP_UPD; typedef struct { @@ -195,14 +195,14 @@ typedef struct { typedef struct { StgHeader header; StgWord words; - StgWord payload[0]; + StgWord payload[FLEXIBLE_ARRAY]; } StgArrWords; typedef struct { StgHeader header; StgWord ptrs; StgMutClosure *mut_link; /* mutable list */ - StgClosure *payload[0]; + StgClosure *payload[FLEXIBLE_ARRAY]; } StgMutArrPtrs; typedef struct { @@ -297,7 +297,7 @@ typedef struct { const struct _StgInfoTable* info; StgWord liveness; StgWord ret_addr; - StgWord payload[0]; + StgWord payload[FLEXIBLE_ARRAY]; } StgRetDyn; /* Concurrent communication objects */ @@ -326,7 +326,7 @@ typedef struct StgBlockingQueueElement_ { StgHeader header; struct StgBlockingQueueElement_ *link; /* next elem in BQ */ StgMutClosure *mut_link; /* next elem in mutable list */ - struct StgClosure_ *payload[0];/* contents of the closure */ + struct StgClosure_ *payload[FLEXIBLE_ARRAY];/* contents of the closure */ } StgBlockingQueueElement; /* only difference to std code is type of the elem in the BQ */ @@ -339,7 +339,7 @@ typedef struct StgBlockingQueue_ { /* this closure is hanging at the end of a blocking queue in (see RBH.c) */ typedef struct StgRBHSave_ { StgHeader header; - StgClosure *payload[0]; /* 2 words ripped out of the guts of the */ + StgClosure *payload[FLEXIBLE_ARRAY]; /* 2 words ripped out of the guts of the */ } StgRBHSave; /* closure holding the blocking queue */ typedef struct StgRBH_ { diff --git a/ghc/includes/InfoTables.h b/ghc/includes/InfoTables.h index f9b97eb..516b188 100644 --- a/ghc/includes/InfoTables.h +++ b/ghc/includes/InfoTables.h @@ -1,5 +1,5 @@ /* ---------------------------------------------------------------------------- - * $Id: InfoTables.h,v 1.21 2001/03/22 03:51:09 hwloidl Exp $ + * $Id: InfoTables.h,v 1.22 2001/08/29 17:24:25 qrczak Exp $ * * (c) The GHC Team, 1998-1999 * @@ -173,7 +173,7 @@ extern StgWord16 closure_flags[]; typedef struct { StgWord size; - StgWord bitmap[0]; + StgWord bitmap[FLEXIBLE_ARRAY]; } StgLargeBitmap; /* @@ -229,10 +229,10 @@ typedef struct _StgInfoTable { StgWord srt_len : 16; /* } */ #endif #ifdef TABLES_NEXT_TO_CODE - StgCode code[0]; + StgCode code[FLEXIBLE_ARRAY]; #else StgFunPtr entry; - StgFunPtr vector[0]; + StgFunPtr vector[FLEXIBLE_ARRAY]; #endif } StgInfoTable; diff --git a/ghc/includes/Stg.h b/ghc/includes/Stg.h index b046847..9406275 100644 --- a/ghc/includes/Stg.h +++ b/ghc/includes/Stg.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Stg.h,v 1.37 2001/08/14 13:40:08 sewardj Exp $ + * $Id: Stg.h,v 1.38 2001/08/29 17:24:25 qrczak Exp $ * * (c) The GHC Team, 1998-1999 * @@ -31,6 +31,15 @@ /* Configuration */ #include "config.h" +#if __GNUC__ >= 3 +/* Assume that a flexible array member at the end of a struct + * can be defined thus: T arr[]; */ +#define FLEXIBLE_ARRAY +#else +/* Assume that it must be defined thus: T arr[0]; */ +#define FLEXIBLE_ARRAY 0 +#endif + /* Some macros to handle DLLing (Win32 only at the moment). */ #include "StgDLL.h" diff --git a/ghc/includes/TSO.h b/ghc/includes/TSO.h index 795dd22..6929536 100644 --- a/ghc/includes/TSO.h +++ b/ghc/includes/TSO.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: TSO.h,v 1.22 2001/07/23 23:26:14 ken Exp $ + * $Id: TSO.h,v 1.23 2001/08/29 17:24:25 qrczak Exp $ * * (c) The GHC Team, 1998-1999 * @@ -188,7 +188,7 @@ typedef struct StgTSO_ { StgPtr sp; StgUpdateFrame* su; - StgWord stack[0]; + StgWord stack[FLEXIBLE_ARRAY]; } StgTSO; /* -----------------------------------------------------------------------------