# New Ticket Created by Steve Peters
# Please include the string: [perl #42359]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42359 >
The attached patch includes several cleanups needed to silence warnings
when compiling Parrot with Intel C++.
The cleanups fall mainly into two catagories.
1) Changing strstart in STRING from a void * to a char *. This also includes
some fixes where the pointer is treated as an unsigned char *.
2) Enum values should be treated as ints, not as the enum type. So, there are
multiple variable and parameter redeclarations from an enumerated type to
an int.
Steve Peters
[EMAIL PROTECTED]
Index: src/embed.c
===================================================================
--- src/embed.c (revision 18040)
+++ src/embed.c (working copy)
@@ -97,7 +97,7 @@
/*
-=item C<void Parrot_set_flag(Interp *interp, Parrot_Interp_flag flag)>
+=item C<void Parrot_set_flag(Interp *interp, int flag)>
Sets a flag in the interpreter specified by C<flag>, any of
C<PARROT_BOUNDS_FLAG>, or C<PARROT_PROFILE_FLAG> to enable profiling, and
@@ -119,7 +119,7 @@
*/
void
-Parrot_set_flag(Interp *interp, Parrot_Interp_flag flag)
+Parrot_set_flag(Interp *interp, int flag)
{
/* These two macros (from interpreter.h) do exactly what they look like. */
@@ -150,7 +150,7 @@
/*
-=item C<void Parrot_clear_flag(Interp *, Parrot_Interp_flag flag)>
+=item C<void Parrot_clear_flag(Interp *, int flag)>
=item C<void Parrot_clear_debug(Interp *, UINTVAL flag)>
@@ -163,7 +163,7 @@
*/
void
-Parrot_clear_flag(Parrot_Interp interp, Parrot_Interp_flag flag)
+Parrot_clear_flag(Parrot_Interp interp, int flag)
{
Interp_flags_CLEAR(interp, flag);
}
@@ -183,7 +183,7 @@
/*
=item C<Parrot_Int
-Parrot_test_flag(Interp*, Parrot_Interp_flag flag)>
+Parrot_test_flag(Interp*, int flag)>
=item C<UINTVAL
Parrot_test_debug(Interp*, UINTVAL flag)>
@@ -198,7 +198,7 @@
*/
Parrot_Int
-Parrot_test_flag(Interp* interp, Parrot_Interp_flag flag)
+Parrot_test_flag(Interp* interp, int flag)
{
return Interp_flags_TEST(interp, flag);
}
Index: src/ops/io.ops
===================================================================
--- src/ops/io.ops (revision 18040)
+++ src/ops/io.ops (working copy)
@@ -509,7 +509,7 @@
if ($3) {
PIOOFF_T pos;
pos = PIO_tell(interp, $3);
- $1 = (INTVAL)(pos >> 32);
+ $1 = (INTVAL)(pos >> 31);
$2 = (INTVAL)(pos & 0xffffffff);
}
goto NEXT();
Index: src/events.c
===================================================================
--- src/events.c (revision 18040)
+++ src/events.c (working copy)
@@ -107,7 +107,7 @@
* a structure to communicate with the io_thread
*/
typedef struct {
- io_thread_msg_type command;
+ int command;
parrot_event *ev;
} io_thread_msg;
Index: src/string.c
===================================================================
--- src/string.c (revision 18040)
+++ src/string.c (working copy)
@@ -974,7 +974,7 @@
dest->encoding = src->encoding;
dest->charset = src->charset;
- dest->strstart = (char *)src->strstart + true_offset ;
+ dest->strstart = src->strstart + true_offset ;
dest->bufused = true_length;
dest->strlen = true_length;
@@ -2011,7 +2011,7 @@
STRING *result, *hex;
UINTVAL i, len, charlen;
String_iter iter;
- unsigned char *dp;
+ char *dp;
if (!src)
return NULL;
@@ -2359,7 +2359,7 @@
*/
INTVAL
-Parrot_string_is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+Parrot_string_is_cclass(Interp *interp, int flags,
STRING *s, UINTVAL offset)
{
if (!string_length(interp, s))
@@ -2368,7 +2368,7 @@
}
INTVAL
-Parrot_string_find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+Parrot_string_find_cclass(Interp *interp, int flags,
STRING *s, UINTVAL offset, UINTVAL count)
{
if (!s)
@@ -2377,7 +2377,7 @@
}
INTVAL
-Parrot_string_find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+Parrot_string_find_not_cclass(Interp *interp, int flags,
STRING *s, UINTVAL offset, UINTVAL count)
{
if (!s)
Index: src/charset/tables.h
===================================================================
--- src/charset/tables.h (revision 18040)
+++ src/charset/tables.h (working copy)
@@ -20,8 +20,8 @@
#define WORDCHAR enum_cclass_word
#define PUNCTUATION enum_cclass_punctuation
#define DIGIT enum_cclass_numeric
-extern const PARROT_CCLASS_FLAGS Parrot_ascii_typetable[256];
-extern const PARROT_CCLASS_FLAGS Parrot_iso_8859_1_typetable[256];
+extern const int Parrot_ascii_typetable[256];
+extern const int Parrot_iso_8859_1_typetable[256];
#endif /* PARROT_CHARSET_TABLES_H_GUARD */
/*
Index: src/charset/iso-8859-1.c
===================================================================
--- src/charset/iso-8859-1.c (revision 18040)
+++ src/charset/iso-8859-1.c (working copy)
@@ -134,7 +134,7 @@
static void
upcase(Interp *interp, STRING *source_string)
{
- unsigned char *buffer;
+ char *buffer;
UINTVAL offset = 0;
if (!source_string->strlen) {
@@ -157,7 +157,7 @@
downcase(Interp *interp, STRING *source_string)
{
UINTVAL offset = 0;
- unsigned char *buffer;
+ char *buffer;
if (!source_string->strlen) {
return;
}
@@ -176,7 +176,7 @@
static void
titlecase(Interp *interp, STRING *source_string)
{
- unsigned char *buffer;
+ char *buffer;
unsigned int c;
UINTVAL offset;
@@ -205,7 +205,7 @@
static void
upcase_first(Interp *interp, STRING *source_string)
{
- unsigned char *buffer;
+ char *buffer;
unsigned int c;
if (!source_string->strlen) {
@@ -224,7 +224,7 @@
static void
downcase_first(Interp *interp, STRING *source_string)
{
- unsigned char *buffer;
+ char *buffer;
unsigned int c;
if (!source_string->strlen) {
@@ -262,7 +262,7 @@
}
static INTVAL
-is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+is_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset)
{
UINTVAL codepoint;
@@ -278,7 +278,7 @@
}
static INTVAL
-find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
@@ -297,7 +297,7 @@
}
static INTVAL
-find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_not_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
Index: src/charset/binary.c
===================================================================
--- src/charset/binary.c (revision 18040)
+++ src/charset/binary.c (working copy)
@@ -125,21 +125,21 @@
}
static INTVAL
-is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+is_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset)
{
return 0;
}
static INTVAL
-find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
return offset + count;
}
static INTVAL
-find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_not_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
return offset + count;
Index: src/charset/unicode.c
===================================================================
--- src/charset/unicode.c (revision 18040)
+++ src/charset/unicode.c (working copy)
@@ -362,7 +362,7 @@
}
static int
-u_iscclass(Interp *interp, UINTVAL codepoint, PARROT_CCLASS_FLAGS flags)
+u_iscclass(Interp *interp, UINTVAL codepoint, int flags)
{
#if PARROT_HAS_ICU
/* XXX which one
@@ -429,7 +429,7 @@
}
static INTVAL
-is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+is_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset)
{
UINTVAL codepoint;
@@ -444,7 +444,7 @@
}
static INTVAL
-find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
@@ -469,7 +469,7 @@
}
static INTVAL
-find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_not_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
Index: src/charset/ascii.c
===================================================================
--- src/charset/ascii.c (revision 18040)
+++ src/charset/ascii.c (working copy)
@@ -85,7 +85,7 @@
{
String_iter iter;
UINTVAL c, len, offs;
- unsigned char *p;
+ char *p;
len = src->strlen;
if (dest) {
@@ -355,7 +355,7 @@
}
static INTVAL
-is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+is_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset)
{
UINTVAL codepoint;
@@ -372,7 +372,7 @@
}
static INTVAL
-find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
@@ -391,7 +391,7 @@
}
static INTVAL
-find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags,
+find_not_cclass(Interp *interp, int flags,
STRING *source_string, UINTVAL offset, UINTVAL count)
{
UINTVAL pos = offset;
Index: src/charset/tables.c
===================================================================
--- src/charset/tables.c (revision 18040)
+++ src/charset/tables.c (working copy)
@@ -14,7 +14,7 @@
*/
#include "tables.h"
-const PARROT_CCLASS_FLAGS Parrot_ascii_typetable[256] = {
+const int Parrot_ascii_typetable[256] = {
0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 0-7 */
0x0200, 0x0320, 0x1220, 0x0220, 0x1220, 0x1220, 0x0200, 0x0200, /* 8-15 */
0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 16-23 */
@@ -48,7 +48,7 @@
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 240-247 */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 248-255 */
};
-const PARROT_CCLASS_FLAGS Parrot_iso_8859_1_typetable[256] = {
+const int Parrot_iso_8859_1_typetable[256] = {
0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 0-7 */
0x0200, 0x0320, 0x1220, 0x0220, 0x1220, 0x1220, 0x0200, 0x0200, /* 8-15 */
0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 16-23 */
Index: src/pmc/string.pmc
===================================================================
--- src/pmc/string.pmc (revision 18040)
+++ src/pmc/string.pmc (working copy)
@@ -836,7 +836,7 @@
METHOD void trans(STRING* src, PMC* table) {
INTVAL i, len;
- unsigned char *p, ch;
+ char *p, ch;
INTVAL *tr_data;
len = string_length(interp, src);
@@ -868,7 +868,7 @@
METHOD void reverse(STRING* src) {
INTVAL i, len;
- unsigned char *p, ch;
+ char *p, ch;
len = string_length(interp, src);
if (!len)
@@ -898,7 +898,7 @@
METHOD INTVAL is_integer(STRING* src) {
INTVAL i, len;
- unsigned char *p;
+ char *p;
len = string_length(interp, src);
if (!len)
Index: src/pmc/parrotinterpreter.pmc
===================================================================
--- src/pmc/parrotinterpreter.pmc (revision 18040)
+++ src/pmc/parrotinterpreter.pmc (working copy)
@@ -43,7 +43,7 @@
*/
void
-clone_interpreter(Parrot_Interp d, Parrot_Interp s, Parrot_clone_flags flags)
+clone_interpreter(Parrot_Interp d, Parrot_Interp s, int flags)
{
/* we block DOD runs while cloning since C<d> is not yet running */
Parrot_block_DOD(d);
@@ -138,7 +138,7 @@
static void
create_interp(PMC *self, Parrot_Interp parent)
{
- Interp_flags flag = 0;
+ int flag = 0;
Parrot_Interp new_interp;
if (self->vtable->base_type == enum_class_ParrotThread)
Index: src/pmc/default.pmc
===================================================================
--- src/pmc/default.pmc (revision 18040)
+++ src/pmc/default.pmc (working copy)
@@ -952,7 +952,7 @@
b = parrot_hash_get_bucket(INTERP, (Hash*) PMC_metadata(SELF),
name);
if (b)
- p = b->value;
+ p = (PMC *)b->value;
}
if (PMC_IS_NULL(p)) {
/* may be NCI? */
Index: src/pmc/key.pmc
===================================================================
--- src/pmc/key.pmc (revision 18040)
+++ src/pmc/key.pmc (working copy)
@@ -435,7 +435,7 @@
void thawfinish(visit_info *info) {
PMC *key = SELF, *next;
while (1) {
- next = PMC_data(key);
+ next = (PMC *)PMC_data(key);
if (PMC_IS_NULL(next)) {
PMC_data(key) = NULL;
break;
Index: src/inter_create.c
===================================================================
--- src/inter_create.c (revision 18040)
+++ src/inter_create.c (working copy)
@@ -89,7 +89,7 @@
void Parrot_really_destroy(Interp *, int exit_code, void *);
Parrot_Interp
-make_interpreter(Parrot_Interp parent, Interp_flags flags)
+make_interpreter(Parrot_Interp parent, int flags)
{
Interp *interp;
#if EXEC_CAPABLE
@@ -102,7 +102,7 @@
interp = &interpre;
else
#endif
- interp = mem_sys_allocate_zeroed(sizeof (Interp));
+ interp = mem_allocate_zeroed_typed(Interp);
/*
* the last interpreter (w/o) parent has to cleanup globals
Index: src/packfile.c
===================================================================
--- src/packfile.c (revision 18040)
+++ src/packfile.c (working copy)
@@ -2839,7 +2839,7 @@
void
PackFile_FixupTable_new_entry(Interp *interp,
- char *label, enum_fixup_t type, opcode_t offs)
+ char *label, int type, opcode_t offs)
{
struct PackFile_FixupTable *self = interp->code->fixups;
opcode_t i;
@@ -2943,7 +2943,7 @@
*/
struct PackFile_FixupEntry *
-PackFile_find_fixup_entry(Interp *interp, enum_fixup_t type,
+PackFile_find_fixup_entry(Interp *interp, int type,
char * name)
{
/* TODO make a hash of all fixups */
Index: src/exceptions.c
===================================================================
--- src/exceptions.c (revision 18040)
+++ src/exceptions.c (working copy)
@@ -646,8 +646,7 @@
*/
void
-do_exception(Interp *interp,
- exception_severity severity, long error)
+do_exception(Interp *interp, int severity, long error)
{
Parrot_exception * const the_exception = interp->exceptions;
Index: src/io/io_buf.c
===================================================================
--- src/io/io_buf.c (revision 18040)
+++ src/io/io_buf.c (working copy)
@@ -384,7 +384,7 @@
{
ParrotIOLayer *l = layer;
ParrotIOBuf *b;
- unsigned char *out_buf;
+ char *out_buf;
STRING *s;
size_t len;
size_t current = 0;
@@ -538,8 +538,8 @@
STRING **buf)
{
size_t l;
- unsigned char *out_buf;
- unsigned char *buf_start;
+ char *out_buf;
+ char *buf_start;
ParrotIOBuf * const b = &io->b;
size_t len;
STRING *s;
@@ -578,7 +578,7 @@
Parrot_allocate_string(interp, s, l);
}
}
- out_buf = (unsigned char*)s->strstart + s->strlen;
+ out_buf = s->strstart + s->strlen;
memcpy(out_buf, buf_start, len);
s->strlen = s->bufused = l;
if (PIO_buf_fill_readbuf(interp, layer, io, b) == 0)
@@ -594,7 +594,7 @@
Parrot_allocate_string(interp, s, l);
}
}
- out_buf = (unsigned char*)s->strstart + s->strlen;
+ out_buf = s->strstart + s->strlen;
len = b->next - buf_start;
memcpy(out_buf, buf_start, len);
s->strlen = s->bufused = l;
Index: src/io/io_private.h
===================================================================
--- src/io/io_private.h (revision 18040)
+++ src/io/io_private.h (working copy)
@@ -97,9 +97,9 @@
struct _ParrotIOBuf {
INTVAL flags; /* Buffer specific flags */
size_t size;
- unsigned char *startb; /* Start of buffer */
- unsigned char *endb; /* End of buffer */
- unsigned char *next; /* Current read/write pointer */
+ char *startb; /* Start of buffer */
+ char *endb; /* End of buffer */
+ char *next; /* Current read/write pointer */
};
struct _ParrotIO {
Index: src/io/io.c
===================================================================
--- src/io/io.c (revision 18040)
+++ src/io/io.c (working copy)
@@ -1283,7 +1283,7 @@
PIOOFF_T
PIO_make_offset32(INTVAL hi, INTVAL lo)
{
- return ((PIOOFF_T)hi << 32) | lo;
+ return ((PIOOFF_T)hi << 31) | lo;
}
/*
Index: src/jit.c
===================================================================
--- src/jit.c (revision 18040)
+++ src/jit.c (working copy)
@@ -1351,7 +1351,7 @@
Parrot_jit_info_t *
parrot_build_asm(Interp *interp,
opcode_t *code_start, opcode_t *code_end,
- void *objfile, enum_jit_code_type jit_type)
+ void *objfile, int jit_type)
{
UINTVAL i;
char *new_arena;
Index: src/jit.h
===================================================================
--- src/jit.h (revision 18040)
+++ src/jit.h (working copy)
@@ -195,7 +195,7 @@
Parrot_jit_arena_t arena;
Parrot_jit_optimizer_t *optimizer;
Parrot_jit_constant_pool_t *constant_pool;
- enum_jit_code_type code_type;
+ int code_type;
int flags;
const struct jit_arch_info_t *arch_info;
int n_args;
@@ -314,7 +314,7 @@
Parrot_jit_info_t *
parrot_build_asm(Interp *interp,
opcode_t *code_start, opcode_t *code_end,
- void *objfile, enum_jit_code_type);
+ void *objfile, int);
/*
* NCI interface
*/
Index: include/parrot/misc.h
===================================================================
--- include/parrot/misc.h (revision 18040)
+++ include/parrot/misc.h (working copy)
@@ -141,9 +141,9 @@
typedef struct spfinfo_t {
UINTVAL width;
UINTVAL prec;
- FLAG flags;
- TYPE type;
- PHASE phase;
+ int flags;
+ int type;
+ int phase;
} *SpfInfo;
/* SPRINTF ARGUMENT OBJECT */
Index: include/parrot/embed.h
===================================================================
--- include/parrot/embed.h (revision 18040)
+++ include/parrot/embed.h (working copy)
@@ -28,9 +28,9 @@
PARROT_API void Parrot_init(Parrot_Interp);
PARROT_API void Parrot_init_stacktop(Parrot_Interp, void *);
-PARROT_API void Parrot_set_flag(Parrot_Interp, Parrot_Interp_flag);
-PARROT_API void Parrot_clear_flag(Parrot_Interp, Parrot_Interp_flag);
-PARROT_API Parrot_Int Parrot_test_flag(Parrot_Interp, Parrot_Interp_flag);
+PARROT_API void Parrot_set_flag(Parrot_Interp, int);
+PARROT_API void Parrot_clear_flag(Parrot_Interp, int);
+PARROT_API Parrot_Int Parrot_test_flag(Parrot_Interp, int);
PARROT_API void Parrot_set_trace(Parrot_Interp, Parrot_UInt);
PARROT_API void Parrot_clear_trace(Parrot_Interp, Parrot_UInt);
Index: include/parrot/charset.h
===================================================================
--- include/parrot/charset.h (revision 18040)
+++ include/parrot/charset.h (working copy)
@@ -53,9 +53,9 @@
typedef INTVAL (*charset_index_t)(Interp *, STRING *source_string, STRING
*search_string, UINTVAL offset);
typedef INTVAL (*charset_rindex_t)(Interp *, STRING *source_string, STRING
*search_string, UINTVAL offset);
typedef UINTVAL (*charset_validate_t)(Interp *, STRING *source_string);
-typedef INTVAL (*charset_is_cclass_t)(Interp *, PARROT_CCLASS_FLAGS, STRING
*source_string, UINTVAL offset);
-typedef INTVAL (*charset_find_cclass_t)(Interp *, PARROT_CCLASS_FLAGS, STRING
*source_string, UINTVAL offset, UINTVAL count);
-typedef INTVAL (*charset_find_not_cclass_t)(Interp *, PARROT_CCLASS_FLAGS,
STRING *source_string, UINTVAL offset, UINTVAL count);
+typedef INTVAL (*charset_is_cclass_t)(Interp *, int, STRING *source_string,
UINTVAL offset);
+typedef INTVAL (*charset_find_cclass_t)(Interp *, int, STRING *source_string,
UINTVAL offset, UINTVAL count);
+typedef INTVAL (*charset_find_not_cclass_t)(Interp *, int, STRING
*source_string, UINTVAL offset, UINTVAL count);
typedef INTVAL (*charset_is_wordchar_t)(Interp *, STRING *source_string,
UINTVAL offset);
typedef INTVAL (*charset_find_wordchar_t)(Interp *, STRING *source_string,
UINTVAL offset);
typedef INTVAL (*charset_find_not_wordchar_t)(Interp *, STRING *source_string,
UINTVAL offset);
Index: include/parrot/string_funcs.h
===================================================================
--- include/parrot/string_funcs.h (revision 18040)
+++ include/parrot/string_funcs.h (working copy)
@@ -112,11 +112,11 @@
PARROT_API void string_downcase_inplace(Interp *, STRING *);
PARROT_API void string_titlecase_inplace(Interp *, STRING *);
-PARROT_API INTVAL Parrot_string_is_cclass(Interp *, PARROT_CCLASS_FLAGS,
+PARROT_API INTVAL Parrot_string_is_cclass(Interp *, int,
STRING *, UINTVAL offset);
-PARROT_API INTVAL Parrot_string_find_cclass(Interp *, PARROT_CCLASS_FLAGS,
+PARROT_API INTVAL Parrot_string_find_cclass(Interp *, int,
STRING *, UINTVAL offset, UINTVAL count);
-PARROT_API INTVAL Parrot_string_find_not_cclass(Interp *, PARROT_CCLASS_FLAGS,
+PARROT_API INTVAL Parrot_string_find_not_cclass(Interp *, int,
STRING *, UINTVAL offset, UINTVAL count);
PARROT_API INTVAL Parrot_string_is_whitespace(Interp *, STRING *, INTVAL
offset);
PARROT_API INTVAL Parrot_string_is_digit(Interp *, STRING *, INTVAL offset);
Index: include/parrot/pobj.h
===================================================================
--- include/parrot/pobj.h (revision 18040)
+++ include/parrot/pobj.h (working copy)
@@ -78,7 +78,7 @@
struct parrot_string_t {
pobj_t obj;
UINTVAL bufused;
- void *strstart;
+ char *strstart;
UINTVAL strlen;
/* parrot_string_representation_t representation;*/
void *encoding; /* These should be of type ENCODING * and CHARSET *
Index: include/parrot/interpreter.h
===================================================================
--- include/parrot/interpreter.h (revision 18040)
+++ include/parrot/interpreter.h (working copy)
@@ -314,7 +314,7 @@
int n_libs; /* count of libs below */
op_lib_t **all_op_libs; /* all loaded opcode libraries */
- Interp_flags flags; /* Various interpreter flags that
+ int flags; /* Various interpreter flags that
* signal that runops should do
* something */
@@ -459,7 +459,7 @@
/* &end_gen */
-PARROT_API Interp *make_interpreter(Interp * parent, Interp_flags);
+PARROT_API Interp *make_interpreter(Interp * parent, int);
PARROT_API void Parrot_init(Interp *);
PARROT_API void Parrot_destroy(Interp *);
@@ -528,7 +528,7 @@
PARROT_API void dynop_register(Interp *interp, PMC* op_lib);
void do_prederef(void **pc_prederef, Interp *interp, int type);
-void clone_interpreter(Parrot_Interp dest, Parrot_Interp self,
Parrot_clone_flags flags);
+void clone_interpreter(Parrot_Interp dest, Parrot_Interp self, int flags);
PARROT_API void enter_nci_method(Interp *, const int type,
void *func, const char *name, const char *proto);
Index: include/parrot/thread.h
===================================================================
--- include/parrot/thread.h (revision 18040)
+++ include/parrot/thread.h (working copy)
@@ -85,7 +85,7 @@
*/
typedef struct _Thread_data {
Parrot_thread thread; /* pthread_t or such */
- thread_state_enum state;
+ int state;
int wants_shared_gc; /* therad is trying to
do a shared GC run */
UINTVAL tid; /* 0.. n-1 idx in interp array */
Index: include/parrot/packfile.h
===================================================================
--- include/parrot/packfile.h (revision 18040)
+++ include/parrot/packfile.h (working copy)
@@ -322,10 +322,10 @@
/* create new fixup entry */
PARROT_API void PackFile_FixupTable_new_entry(Interp *, char *label,
- enum_fixup_t, opcode_t offs);
+ int, opcode_t offs);
/* find entry */
PARROT_API struct PackFile_FixupEntry * PackFile_find_fixup_entry(Interp *,
- enum_fixup_t type, char *);
+ int type, char *);
/*
** PackFile_ByteCode Functions:
Index: include/parrot/pmc_freeze.h
===================================================================
--- include/parrot/pmc_freeze.h (revision 18040)
+++ include/parrot/pmc_freeze.h (working copy)
@@ -76,7 +76,7 @@
PMC* id_list; /* seen list used by thaw */
UINTVAL id; /* freze ID of PMC */
void* extra; /* PMC specific */
- extra_flags_enum extra_flags; /* concerning to extra */
+ int extra_flags; /* concerning to extra */
PMC* thaw_result; /* 1st thawed */
IMAGE_IO *image_io;
} visit_info;
Index: include/parrot/exceptions.h
===================================================================
--- include/parrot/exceptions.h (revision 18040)
+++ include/parrot/exceptions.h (working copy)
@@ -154,7 +154,7 @@
/* Right now there's nothing special for the jump buffer, but there might be
one later, so we wrap it in a struct so that we can expand it later */
struct parrot_exception_t {
Parrot_jump_buff destination; /* jmp_buf */
- exception_severity severity; /* s. above */
+ int severity; /* s. above */
long error; /* exception_type_enum */
STRING *msg; /* may be NULL */
void *resume; /* opcode_t* for resume or NULL */
@@ -181,7 +181,7 @@
/*
* internal exception handling
*/
-PARROT_API void do_exception(Parrot_Interp, exception_severity severity, long
error);
+PARROT_API void do_exception(Parrot_Interp, int severity, long error);
PARROT_API void new_internal_exception(Parrot_Interp);
PARROT_API void free_internal_exception(Parrot_Interp);
Index: config/auto/gcc.pm
===================================================================
--- config/auto/gcc.pm (revision 18040)
+++ config/auto/gcc.pm (working copy)
@@ -126,7 +126,7 @@
. " -Wformat-nonliteral -Wformat-security -Wpacked"
. " -Wdisabled-optimization -mno-accumulate-outgoing-args"
. " -Wno-shadow",
-
+ 4.1 => "-Wc++-compat",
# -Wsequence-point is part of -Wall
# -Wfloat-equal may not be what we want
# We shouldn't be using __packed__, but I doubt -Wpacked will harm