Permalink
Browse files

[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!
  • Loading branch information...
1 parent 2744e4f commit aa84d93a9a3a3ff9b606ce24b6c73f5f06ff2c0a qrczak committed Aug 29, 2001
Showing with 26 additions and 17 deletions.
  1. +10 −10 ghc/includes/Closures.h
  2. +4 −4 ghc/includes/InfoTables.h
  3. +10 −1 ghc/includes/Stg.h
  4. +2 −2 ghc/includes/TSO.h
View
@@ -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_ {
@@ -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;
View
@@ -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"
View
@@ -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;
/* -----------------------------------------------------------------------------

0 comments on commit aa84d93

Please sign in to comment.