Commit aa84d93a authored by qrczak's avatar qrczak
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!
parent 2744e4fb
/* ----------------------------------------------------------------------------
* $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_ {
......
/* ----------------------------------------------------------------------------
* $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;
......
/* -----------------------------------------------------------------------------
* $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"
......
/* -----------------------------------------------------------------------------
* $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;
/* -----------------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment