|
|
Author: petdance
Date: Sat Jul 14 23:19:53 2007
New Revision: 19886
Modified:
trunk/compilers/imcc/cfg.c
trunk/config/gen/makefiles/root.in
trunk/include/parrot/charset.h
trunk/include/parrot/compiler.h
trunk/include/parrot/dynext.h
trunk/include/parrot/encoding.h
trunk/include/parrot/mmd.h
trunk/include/parrot/objects.h
trunk/include/parrot/packfile.h
trunk/src/charset.c
trunk/src/dynext.c
trunk/src/encoding.c
trunk/src/gc/dod.c
trunk/src/gc/gc_gms.c
trunk/src/gc/memory.c
trunk/src/gc/resources.c
trunk/src/inter_call.c
trunk/src/inter_create.c
trunk/src/io/io_unix.c
trunk/src/longopt.c
trunk/src/mmd.c
trunk/src/objects.c
trunk/src/packfile.c
trunk/src/pic_jit.c
trunk/src/pmc_freeze.c
trunk/src/stm/backend.c
trunk/tools/build/headerizer.pl
Log:
More splint macro slathering. Join the party, won't you?
Modified: trunk/compilers/imcc/cfg.c
==============================================================================
--- trunk/compilers/imcc/cfg.c (original)
+++ trunk/compilers/imcc/cfg.c Sat Jul 14 23:19:53 2007
@@ -61,14 +61,18 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-static void free_dominance_frontiers( IMC_Unit * unit );
+static void free_dominance_frontiers( NOTNULL(IMC_Unit *unit) )
+ __attribute__nonnull__(1);
+
static void free_dominators( NOTNULL(IMC_Unit *unit) )
__attribute__nonnull__(1);
static void free_edge( NOTNULL(IMC_Unit *unit) )
__attribute__nonnull__(1);
-static void free_loops( IMC_Unit * unit );
+static void free_loops( NOTNULL(IMC_Unit *unit) )
+ __attribute__nonnull__(1);
+
static void init_basic_blocks( NOTNULL(IMC_Unit *unit) )
__attribute__nonnull__(1);
@@ -79,9 +83,18 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-static void mark_loop( Parrot_Interp interp, IMC_Unit * unit, const Edge* e );
+static void mark_loop( PARROT_INTERP,
+ NOTNULL(IMC_Unit *unit),
+ NOTNULL(const Edge *e) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
static void propagate_need( Basic_block *bb, SymReg* r, int i );
-static void sort_loops( Parrot_Interp interp, IMC_Unit * unit );
+static void sort_loops( PARROT_INTERP, NOTNULL(IMC_Unit *unit) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
/* HEADERIZER END: static */
/* Code: */
@@ -921,7 +934,7 @@
}
static void
-free_dominance_frontiers(IMC_Unit * unit)
+free_dominance_frontiers(NOTNULL(IMC_Unit *unit))
{
int i;
@@ -936,7 +949,7 @@
static void
-sort_loops(Parrot_Interp interp, IMC_Unit * unit)
+sort_loops(PARROT_INTERP, NOTNULL(IMC_Unit *unit))
{
int i, j, changed;
Loop_info *li;
@@ -1060,7 +1073,7 @@
/* Increases the loop_depth of all the nodes in a loop */
static void
-mark_loop(Parrot_Interp interp, IMC_Unit * unit, const Edge* e)
+mark_loop(PARROT_INTERP, NOTNULL(IMC_Unit *unit), NOTNULL(const Edge *e))
{
Set* loop;
Set* exits;
@@ -1140,7 +1153,7 @@
}
static void
-free_loops(IMC_Unit * unit)
+free_loops(NOTNULL(IMC_Unit *unit))
{
int i;
for (i = 0; i < unit->n_loops; i++) {
Modified: trunk/config/gen/makefiles/root.in
==============================================================================
--- trunk/config/gen/makefiles/root.in (original)
+++ trunk/config/gen/makefiles/root.in Sat Jul 14 23:19:53 2007
@@ -1749,6 +1749,13 @@
-standard \
-tmpdir $(SPLINT_TMP) \
-message-stream-stdout \
+ -declundef \
+ -show-summary \
+ -exportlocal \
+ +linelen 120 \
+ +showdeephistory \
+ -showfunc \
+ -hints \
\
-abstract \
+aliasunique \
@@ -1777,7 +1784,6 @@
-initallelements \
-isoreserved \
-isoreservedinternal \
- +linelen 9999 \
+longintegral \
+macroassign \
+macroempty \
@@ -1809,6 +1815,8 @@
-skipposixheaders \
-type \
\
+ \
+ \
-mustfreefresh \
-mustfreeonly \
-compdestroy \
@@ -1853,21 +1861,10 @@
splint-andy :
$(MKPATH) $(SPLINT_TMP)
/var/splint312/bin/splint $(CC_INC) @cc_hasjit@ "-Isrc/pmc"
"-Icompilers/ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
- -declundef \
- -show-summary \
- -exportlocal \
- +linelen 80 \
- +showdeephistory \
- -showfunc \
- -hints \
\
- src/builtin.c \
- src/stacks.c \
-
-LATER = \
- src/string.c \
- src/list.c \
- src/intlist.c \
+ src/gc/dod.c src/gc/gc_gms.c src/gc/gc_ims.c \
+ src/gc/memory.c src/gc/register.c \
+ src/gc/resources.c src/gc/smallobject.c \
###############################################################################
#
Modified: trunk/include/parrot/charset.h
==============================================================================
--- trunk/include/parrot/charset.h (original)
+++ trunk/include/parrot/charset.h Sat Jul 14 23:19:53 2007
@@ -119,6 +119,7 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
charset_converter_t Parrot_find_charset_converter(
SHIM_INTERP,
NOTNULL(CHARSET *lhs),
Modified: trunk/include/parrot/compiler.h
==============================================================================
--- trunk/include/parrot/compiler.h (original)
+++ trunk/include/parrot/compiler.h Sat Jul 14 23:19:53 2007
@@ -74,7 +74,7 @@
* get "_unused" added to them so that you can't accidentally use them
* without removing the shim designation.
*/
-#define SHIM(a) /*@unused@*/ a##_unused __attribute__unused__
+#define SHIM(a) /*@unused@*/ a##_unused __attribute__unused__ /*@null@*/
/* UNUSED() is the old way we handled shim arguments Should still be
used in cases where the argument should, at some point be used.
Modified: trunk/include/parrot/dynext.h
==============================================================================
--- trunk/include/parrot/dynext.h (original)
+++ trunk/include/parrot/dynext.h Sat Jul 14 23:19:53 2007
@@ -11,6 +11,8 @@
/* HEADERIZER BEGIN: src/dynext.c */
PARROT_API
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
PMC * Parrot_clone_lib_into( Interp *d, Interp *s, PMC *lib_pmc );
PARROT_API
@@ -21,6 +23,8 @@
__attribute__nonnull__(1);
PARROT_API
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
PMC * Parrot_load_lib( PARROT_INTERP, NULLOK(STRING *lib), PMC *initializer )
__attribute__nonnull__(1);
Modified: trunk/include/parrot/encoding.h
==============================================================================
--- trunk/include/parrot/encoding.h (original)
+++ trunk/include/parrot/encoding.h Sat Jul 14 23:19:53 2007
@@ -76,19 +76,19 @@
/* HEADERIZER BEGIN: src/encoding.c */
PARROT_API
-ENCODING * Parrot_default_encoding( PARROT_INTERP )
- __attribute__nonnull__(1);
+ENCODING * Parrot_default_encoding( SHIM_INTERP );
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
const char * Parrot_encoding_c_name( PARROT_INTERP,
INTVAL number_of_encoding )
__attribute__nonnull__(1);
PARROT_API
PARROT_WARN_UNUSED_RESULT
-STRING* Parrot_encoding_name( PARROT_INTERP, INTVAL number_of_encoding )
- __attribute__nonnull__(1);
+PARROT_CAN_RETURN_NULL
+STRING* Parrot_encoding_name( SHIM_INTERP, INTVAL number_of_encoding );
PARROT_API
PARROT_WARN_UNUSED_RESULT
@@ -104,6 +104,7 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
ENCODING * Parrot_find_encoding( PARROT_INTERP,
NOTNULL(const char *encodingname) )
__attribute__nonnull__(1)
@@ -117,6 +118,7 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
ENCODING* Parrot_get_encoding( PARROT_INTERP, INTVAL number_of_encoding )
__attribute__nonnull__(1);
@@ -128,10 +130,10 @@
__attribute__nonnull__(2);
PARROT_API
-INTVAL Parrot_make_default_encoding( PARROT_INTERP,
+INTVAL Parrot_make_default_encoding(
+ SHIM_INTERP,
const char *encodingname,
NOTNULL(ENCODING *encoding) )
- __attribute__nonnull__(1)
__attribute__nonnull__(3);
PARROT_API
Modified: trunk/include/parrot/mmd.h
==============================================================================
--- trunk/include/parrot/mmd.h (original)
+++ trunk/include/parrot/mmd.h Sat Jul 14 23:19:53 2007
@@ -87,7 +87,7 @@
PMC* mmd_dispatch_p_pip( PARROT_INTERP,
NOTNULL(PMC *left),
INTVAL right,
- PMC *dest,
+ NULLOK(PMC *dest),
INTVAL func_nr )
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -96,7 +96,7 @@
PMC* mmd_dispatch_p_pnp( PARROT_INTERP,
NOTNULL(PMC *left),
FLOATVAL right,
- PMC *dest,
+ NULLOK(PMC *dest),
INTVAL func_nr )
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -105,7 +105,7 @@
PMC* mmd_dispatch_p_ppp( PARROT_INTERP,
NOTNULL(PMC *left),
NOTNULL(PMC *right),
- PMC *dest,
+ NULLOK(PMC *dest),
INTVAL func_nr )
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -114,11 +114,12 @@
PARROT_API
PMC* mmd_dispatch_p_psp( PARROT_INTERP,
NOTNULL(PMC *left),
- STRING *right,
- PMC *dest,
+ NOTNULL(STRING *right),
+ NULLOK(PMC *dest),
INTVAL func_nr )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_API
void mmd_dispatch_v_pn( PARROT_INTERP,
@@ -174,9 +175,10 @@
PARROT_API
void Parrot_mmd_register_table( PARROT_INTERP,
INTVAL type,
- const MMD_init *mmd_table,
+ NOTNULL(const MMD_init *mmd_table),
INTVAL n )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
PARROT_API
PMC * Parrot_MMD_search_default_infix( PARROT_INTERP,
Modified: trunk/include/parrot/objects.h
==============================================================================
--- trunk/include/parrot/objects.h (original)
+++ trunk/include/parrot/objects.h Sat Jul 14 23:19:53 2007
@@ -98,8 +98,11 @@
__attribute__nonnull__(2);
PARROT_API
-PMC * Parrot_get_attrib_by_num( PARROT_INTERP, PMC *object, INTVAL attrib )
- __attribute__nonnull__(1);
+PMC * Parrot_get_attrib_by_num( PARROT_INTERP,
+ NOTNULL(PMC *object),
+ INTVAL attrib )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_API
PMC * Parrot_get_attrib_by_str( PARROT_INTERP, PMC *object, STRING *attr )
@@ -111,12 +114,17 @@
__attribute__nonnull__(2);
PARROT_API
-void Parrot_instantiate_object( PARROT_INTERP, PMC *object )
- __attribute__nonnull__(1);
+void Parrot_instantiate_object( PARROT_INTERP, NOTNULL(PMC *object) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_API
-void Parrot_instantiate_object_init( PARROT_INTERP, PMC *object, PMC *init )
- __attribute__nonnull__(1);
+void Parrot_instantiate_object_init( PARROT_INTERP,
+ NOTNULL(PMC *object),
+ NOTNULL(PMC *init) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_API
void Parrot_invalidate_method_cache( PARROT_INTERP,
@@ -164,17 +172,22 @@
PARROT_API
void Parrot_set_attrib_by_num( PARROT_INTERP,
- PMC *object,
+ NOTNULL(PMC *object),
INTVAL attrib,
- PMC *value )
- __attribute__nonnull__(1);
+ NOTNULL(PMC *value) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
PARROT_API
void Parrot_set_attrib_by_str( PARROT_INTERP,
- PMC *object,
- STRING *attr,
- PMC *value )
- __attribute__nonnull__(1);
+ NOTNULL(PMC *object),
+ NOTNULL(STRING *attr),
+ NOTNULL(PMC *value) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
PARROT_API
void Parrot_set_class_constructor( PARROT_INTERP,
Modified: trunk/include/parrot/packfile.h
==============================================================================
--- trunk/include/parrot/packfile.h (original)
+++ trunk/include/parrot/packfile.h Sat Jul 14 23:19:53 2007
@@ -442,10 +442,11 @@
PackFile_Segment * PackFile_Segment_new_seg( PARROT_INTERP,
NOTNULL(PackFile_Directory *dir),
UINTVAL type,
- const char *name,
+ NOTNULL(const char *name),
int add )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
PARROT_API
opcode_t * PackFile_Segment_pack( PARROT_INTERP,
Modified: trunk/src/charset.c
==============================================================================
--- trunk/src/charset.c (original)
+++ trunk/src/charset.c Sat Jul 14 23:19:53 2007
@@ -124,7 +124,6 @@
UNUSED(charsetname);
real_exception(interp, NULL, UNIMPLEMENTED, "Can't load charsets yet");
- return NULL;
}
/*
@@ -333,6 +332,7 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
charset_converter_t
Parrot_find_charset_converter(SHIM_INTERP, NOTNULL(CHARSET *lhs),
NOTNULL(CHARSET *rhs))
{
Modified: trunk/src/dynext.c
==============================================================================
--- trunk/src/dynext.c (original)
+++ trunk/src/dynext.c Sat Jul 14 23:19:53 2007
@@ -19,6 +19,8 @@
/* HEADERIZER BEGIN: static */
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
static STRING * get_path( PARROT_INTERP,
STRING *lib,
NOTNULL(void **handle),
@@ -27,9 +29,13 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
static PMC* is_loaded( PARROT_INTERP, STRING *path )
__attribute__nonnull__(1);
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
static PMC * make_string_pmc( PARROT_INTERP, STRING *string )
__attribute__nonnull__(1);
@@ -114,6 +120,8 @@
*/
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
static PMC*
is_loaded(PARROT_INTERP, STRING *path)
{
@@ -134,6 +142,8 @@
*/
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
static STRING *
get_path(PARROT_INTERP, STRING *lib, NOTNULL(void **handle),
STRING *wo_ext, STRING *ext)
@@ -340,6 +350,8 @@
return lib_pmc;
}
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
static STRING *
clone_string_into(Interp *d, Interp *s, PMC *value) {
STRING * const orig = VTABLE_get_string(s, value);
@@ -352,6 +364,8 @@
return ret;
}
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
static PMC *
make_string_pmc(PARROT_INTERP, STRING *string)
{
@@ -362,6 +376,8 @@
}
PARROT_API
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
PMC *
Parrot_clone_lib_into(Interp *d, Interp *s, PMC *lib_pmc)
{
@@ -413,6 +429,8 @@
}
PARROT_API
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
PMC *
Parrot_load_lib(PARROT_INTERP, NULLOK(STRING *lib), SHIM(PMC *initializer))
{
Modified: trunk/src/encoding.c
==============================================================================
--- trunk/src/encoding.c (original)
+++ trunk/src/encoding.c Sat Jul 14 23:19:53 2007
@@ -81,6 +81,7 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
ENCODING *
Parrot_find_encoding(PARROT_INTERP, NOTNULL(const char *encodingname))
{
@@ -107,7 +108,6 @@
{
UNUSED(encodingname);
real_exception(interp, NULL, UNIMPLEMENTED, "Can't load encodings yet");
- return NULL;
}
/*
@@ -160,11 +160,10 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
STRING*
-Parrot_encoding_name(PARROT_INTERP, INTVAL number_of_encoding)
+Parrot_encoding_name(SHIM_INTERP, INTVAL number_of_encoding)
{
- UNUSED(interp);
-
if (number_of_encoding >= all_encodings->n_encodings)
return NULL;
return all_encodings->enc[number_of_encoding].name;
@@ -172,11 +171,10 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
ENCODING*
Parrot_get_encoding(PARROT_INTERP, INTVAL number_of_encoding)
{
- UNUSED(interp);
-
if (number_of_encoding >= all_encodings->n_encodings)
return NULL;
return all_encodings->enc[number_of_encoding].encoding;
@@ -184,11 +182,10 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
const char *
Parrot_encoding_c_name(PARROT_INTERP, INTVAL number_of_encoding)
{
- UNUSED(interp);
-
if (number_of_encoding >= all_encodings->n_encodings)
return NULL;
return all_encodings->enc[number_of_encoding].encoding->name;
@@ -257,29 +254,23 @@
PARROT_API
INTVAL
-Parrot_make_default_encoding(PARROT_INTERP, const char *encodingname,
+Parrot_make_default_encoding(SHIM_INTERP, SHIM(const char *encodingname),
NOTNULL(ENCODING *encoding))
{
- UNUSED(interp);
- UNUSED(encodingname);
-
Parrot_default_encoding_ptr = encoding;
return 1;
}
PARROT_API
ENCODING *
-Parrot_default_encoding(PARROT_INTERP)
+Parrot_default_encoding(SHIM_INTERP)
{
- UNUSED(interp);
-
return Parrot_default_encoding_ptr;
}
PARROT_API
encoding_converter_t
-Parrot_find_encoding_converter(PARROT_INTERP, ENCODING *lhs,
- ENCODING *rhs)
+Parrot_find_encoding_converter(PARROT_INTERP, ENCODING *lhs, ENCODING *rhs)
{
UNUSED(interp);
UNUSED(lhs);
Modified: trunk/src/gc/dod.c
==============================================================================
--- trunk/src/gc/dod.c (original)
+++ trunk/src/gc/dod.c Sat Jul 14 23:19:53 2007
@@ -33,7 +33,6 @@
__attribute__nonnull__(1);
PARROT_CONST_FUNCTION
-PARROT_WARN_UNUSED_RESULT
static size_t find_common_mask( PARROT_INTERP, size_t val1, size_t val2 )
__attribute__nonnull__(1);
@@ -44,9 +43,10 @@
static int sweep_cb( PARROT_INTERP,
NOTNULL(Small_Object_Pool *pool),
int flag,
- void *arg )
+ NOTNULL(void *arg) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
static int trace_active_PMCs( PARROT_INTERP, int trace_stack )
__attribute__nonnull__(1);
@@ -724,7 +724,6 @@
*/
PARROT_CONST_FUNCTION
-PARROT_WARN_UNUSED_RESULT
static size_t
find_common_mask(PARROT_INTERP, size_t val1, size_t val2)
{
@@ -922,7 +921,7 @@
}
static int
-sweep_cb(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool), int flag, void *arg)
+sweep_cb(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool), int flag,
NOTNULL(void *arg))
{
int * const total_free = (int *) arg;
Modified: trunk/src/gc/gc_gms.c
==============================================================================
--- trunk/src/gc/gc_gms.c (original)
+++ trunk/src/gc/gc_gms.c Sat Jul 14 23:19:53 2007
@@ -135,14 +135,18 @@
void *to_add )
__attribute__nonnull__(1);
-static void gc_gms_alloc_objects( PARROT_INTERP, Small_Object_Pool *pool )
- __attribute__nonnull__(1);
+static void gc_gms_alloc_objects( PARROT_INTERP,
+ NOTNULL(Small_Object_Pool *pool) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void gc_gms_chain_objects( PARROT_INTERP,
- Small_Object_Pool *pool,
- Small_Object_Arena *new_arena,
+ NOTNULL(Small_Object_Pool *pool),
+ NOTNULL(Small_Object_Arena *new_arena),
size_t real_size )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void gc_gms_clear_hdr_list( PARROT_INTERP,
NOTNULL(Gc_gms_hdr_list *l) )
@@ -155,9 +159,10 @@
PARROT_MALLOC
static Gc_gms_gen * gc_gms_create_gen( PARROT_INTERP,
- Small_Object_Pool *pool,
+ NOTNULL(Small_Object_Pool *pool),
size_t gen_no )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void gc_gms_end_cycle( PARROT_INTERP )
__attribute__nonnull__(1);
@@ -169,11 +174,14 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void * gc_gms_get_free_object( PARROT_INTERP, Small_Object_Pool *pool )
- __attribute__nonnull__(1);
+static void * gc_gms_get_free_object( PARROT_INTERP,
+ NOTNULL(Small_Object_Pool *pool) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-static void gc_gms_init_gen( PARROT_INTERP, Small_Object_Pool *pool )
- __attribute__nonnull__(1);
+static void gc_gms_init_gen( PARROT_INTERP, NOTNULL(Small_Object_Pool *pool) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void gc_gms_init_mark( PARROT_INTERP )
__attribute__nonnull__(1);
@@ -186,8 +194,10 @@
__attribute__nonnull__(2)
__attribute__nonnull__(4);
-static void gc_gms_more_objects( PARROT_INTERP, Small_Object_Pool *pool )
- __attribute__nonnull__(1);
+static void gc_gms_more_objects( PARROT_INTERP,
+ NOTNULL(Small_Object_Pool *pool) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void gc_gms_pool_init( PARROT_INTERP,
NOTNULL(Small_Object_Pool *pool) )
@@ -495,8 +505,8 @@
static void
gc_gms_chain_objects(PARROT_INTERP,
- Small_Object_Pool *pool,
- Small_Object_Arena *new_arena,
+ NOTNULL(Small_Object_Pool *pool),
+ NOTNULL(Small_Object_Arena *new_arena),
size_t real_size)
{
Gc_gms_hdr *p, *next, *prev, *marker;
@@ -543,7 +553,7 @@
}
static void
-gc_gms_alloc_objects(PARROT_INTERP, Small_Object_Pool *pool)
+gc_gms_alloc_objects(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))
{
const size_t real_size = pool->object_size;
Small_Object_Arena * const new_arena = mem_internal_allocate(sizeof
(Small_Object_Arena));
@@ -565,7 +575,7 @@
}
static void
-gc_gms_more_objects(PARROT_INTERP, Small_Object_Pool *pool)
+gc_gms_more_objects(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))
{
if (pool->skip)
pool->skip = 0;
@@ -586,7 +596,7 @@
*/
static void *
-gc_gms_get_free_object(PARROT_INTERP, Small_Object_Pool *pool)
+gc_gms_get_free_object(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))
{
PObj *ptr;
Gc_gms_hdr *hdr;
@@ -638,7 +648,7 @@
PARROT_MALLOC
static Gc_gms_gen *
-gc_gms_create_gen(PARROT_INTERP, Small_Object_Pool *pool, size_t gen_no)
+gc_gms_create_gen(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool), size_t
gen_no)
{
Gc_gms_gen * const gen = mem_sys_allocate(sizeof (*gen));
@@ -653,7 +663,7 @@
}
static void
-gc_gms_init_gen(PARROT_INTERP, Small_Object_Pool *pool)
+gc_gms_init_gen(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))
{
Gc_gms_private *gmsp;
/*
Modified: trunk/src/gc/memory.c
==============================================================================
--- trunk/src/gc/memory.c (original)
+++ trunk/src/gc/memory.c Sat Jul 14 23:19:53 2007
@@ -78,7 +78,7 @@
#ifdef DETAIL_MEMORY_DEBUG
fprintf(stderr, "Allocated %i at %p\n", size, ptr);
#endif
- if (!ptr && size)
+ if (!ptr)
PANIC(NULL, "Out of mem");
return ptr;
}
@@ -95,7 +95,7 @@
UNUSED(file);
UNUSED(line);
#endif
- if (!ptr && size)
+ if (!ptr)
PANIC(NULL, "Out of mem");
return ptr;
}
Modified: trunk/src/gc/resources.c
==============================================================================
--- trunk/src/gc/resources.c (original)
+++ trunk/src/gc/resources.c Sat Jul 14 23:19:53 2007
@@ -46,12 +46,15 @@
static void * alloc_new_block( PARROT_INTERP,
size_t size,
- Memory_Pool *pool,
- const char *why )
- __attribute__nonnull__(1);
+ NOTNULL(Memory_Pool *pool),
+ NOTNULL(const char *why) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
-static const char* buffer_location( PARROT_INTERP, const PObj *b )
- __attribute__nonnull__(1);
+static const char* buffer_location( PARROT_INTERP, NOTNULL(const PObj *b) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void compact_pool( PARROT_INTERP, NOTNULL(Memory_Pool *pool) )
__attribute__nonnull__(1)
@@ -75,7 +78,9 @@
__attribute__nonnull__(2);
PARROT_MALLOC
-static Memory_Pool * new_memory_pool( size_t min_block, compact_f compact );
+static Memory_Pool * new_memory_pool(
+ size_t min_block,
+ NULLOK(compact_f compact) );
/* HEADERIZER END: static */
@@ -88,7 +93,8 @@
*/
static void *
-alloc_new_block(PARROT_INTERP, size_t size, Memory_Pool *pool, const char *why)
+alloc_new_block(PARROT_INTERP, size_t size, NOTNULL(Memory_Pool *pool),
+ NOTNULL(const char *why))
{
Memory_Block *new_block;
@@ -230,7 +236,7 @@
#if RESOURCE_DEBUG
static const char*
-buffer_location(PARROT_INTERP, const PObj *b)
+buffer_location(PARROT_INTERP, NOTNULL(const PObj *b))
{
int i;
static char reg[10];
@@ -790,7 +796,7 @@
PARROT_MALLOC
static Memory_Pool *
-new_memory_pool(size_t min_block, compact_f compact)
+new_memory_pool(size_t min_block, NULLOK(compact_f compact))
{
Memory_Pool * const pool = mem_internal_allocate_typed(Memory_Pool);
@@ -824,8 +830,7 @@
alloc_new_block(interp, POOL_SIZE, arena_base->memory_pool, "init");
/* Constant strings - not compacted */
- arena_base->constant_string_pool =
- new_memory_pool(POOL_SIZE, (compact_f)NULLfunc);
+ arena_base->constant_string_pool = new_memory_pool(POOL_SIZE, NULL);
alloc_new_block(interp, POOL_SIZE,
arena_base->constant_string_pool, "init");
Modified: trunk/src/inter_call.c
==============================================================================
--- trunk/src/inter_call.c (original)
+++ trunk/src/inter_call.c Sat Jul 14 23:19:53 2007
@@ -104,9 +104,10 @@
static void start_flatten( PARROT_INTERP,
NOTNULL(call_state *st),
- PMC *p_arg )
+ NOTNULL(PMC *p_arg) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void store_arg( NOTNULL(call_state *st), INTVAL idx )
__attribute__nonnull__(1);
@@ -292,7 +293,7 @@
* PMC being flattened, and fetch the first arg from the flattened set.
*/
static void
-start_flatten(PARROT_INTERP, NOTNULL(call_state *st), PMC *p_arg)
+start_flatten(PARROT_INTERP, NOTNULL(call_state *st), NOTNULL(PMC *p_arg))
{
if (PARROT_ARG_NAME_ISSET(st->src.sig)) {
/* src ought to be an hash */
@@ -352,7 +353,7 @@
static int
fetch_arg_sig(PARROT_INTERP, NOTNULL(call_state *st))
{
- va_list *ap = (va_list*)(st->src.u.sig.ap);
+ va_list * const ap = (va_list*)(st->src.u.sig.ap);
switch (st->src.sig & PARROT_ARG_TYPE_MASK) {
case PARROT_ARG_INTVAL:
UVal_int(st->val) = va_arg(*ap, INTVAL);
Modified: trunk/src/inter_create.c
==============================================================================
--- trunk/src/inter_create.c (original)
+++ trunk/src/inter_create.c Sat Jul 14 23:19:53 2007
@@ -88,6 +88,7 @@
void Parrot_really_destroy(Interp *, int exit_code, void *);
PARROT_API
+PARROT_CANNOT_RETURN_NULL
Parrot_Interp
make_interpreter(NULLOK(Interp *parent), INTVAL flags)
{
Modified: trunk/src/io/io_unix.c
==============================================================================
--- trunk/src/io/io_unix.c (original)
+++ trunk/src/io/io_unix.c Sat Jul 14 23:19:53 2007
@@ -144,8 +144,9 @@
SHIM_INTERP,
ParrotIOLayer *layer,
NOTNULL(ParrotIO *io),
- STRING *s )
- __attribute__nonnull__(3);
+ NOTNULL(STRING *s) )
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
static ParrotIO * PIO_unix_socket( PARROT_INTERP,
ParrotIOLayer *layer,
@@ -860,7 +861,7 @@
*/
static INTVAL
-PIO_unix_send(SHIM_INTERP, SHIM(ParrotIOLayer *layer), NOTNULL(ParrotIO *io),
STRING *s)
+PIO_unix_send(SHIM_INTERP, SHIM(ParrotIOLayer *layer), NOTNULL(ParrotIO *io),
NOTNULL(STRING *s))
{
int error, bytes, byteswrote;
Modified: trunk/src/longopt.c
==============================================================================
--- trunk/src/longopt.c (original)
+++ trunk/src/longopt.c Sat Jul 14 23:19:53 2007
@@ -25,10 +25,11 @@
int argc,
NOTNULL(char* argv[]),
NOTNULL(const struct longopt_opt_decl options[]),
- struct longopt_opt_info* info_buf )
+ NOTNULL(struct longopt_opt_info* info_buf) )
__attribute__nonnull__(1)
__attribute__nonnull__(3)
- __attribute__nonnull__(4);
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
static int longopt_get_shortopt( PARROT_INTERP,
int argc,
@@ -112,7 +113,7 @@
static int
longopt_get_longopt(PARROT_INTERP, int argc, NOTNULL(char* argv[]),
NOTNULL(const struct longopt_opt_decl options[]),
- struct longopt_opt_info* info_buf)
+ NOTNULL(struct longopt_opt_info* info_buf))
{
const int dex = info_buf->opt_index;
int optlen = 0;
Modified: trunk/src/mmd.c
==============================================================================
--- trunk/src/mmd.c (original)
+++ trunk/src/mmd.c Sat Jul 14 23:19:53 2007
@@ -52,11 +52,13 @@
__attribute__nonnull__(1);
static funcptr_t get_mmd_dispatcher( PARROT_INTERP,
- PMC *left,
- PMC *right,
+ NOTNULL(PMC *left),
+ NOTNULL(PMC *right),
INTVAL function,
NOTNULL(int *is_pmc) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
__attribute__nonnull__(5);
static PMC* mmd_arg_tuple_func( PARROT_INTERP )
@@ -69,27 +71,31 @@
__attribute__nonnull__(2);
static void mmd_create_builtin_multi_meth( PARROT_INTERP,
- PMC *ns,
+ NOTNULL(PMC *ns),
INTVAL type,
NOTNULL(const MMD_init *entry) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
__attribute__nonnull__(4);
static void mmd_create_builtin_multi_meth_2( PARROT_INTERP,
- PMC *ns,
+ NOTNULL(PMC *ns),
INTVAL func_nr,
INTVAL type,
INTVAL right,
funcptr_t func_ptr )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static PMC * mmd_create_builtin_multi_stub( PARROT_INTERP,
- PMC* ns,
+ NOTNULL(PMC* ns),
INTVAL func_nr )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-static PMC* mmd_cvt_to_types( PARROT_INTERP, PMC *multi_sig )
- __attribute__nonnull__(1);
+static PMC* mmd_cvt_to_types( PARROT_INTERP, NOTNULL(PMC *multi_sig) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static PMC * mmd_deref( PARROT_INTERP, NOTNULL(PMC *value) )
__attribute__nonnull__(1)
@@ -97,9 +103,10 @@
static UINTVAL mmd_distance( PARROT_INTERP,
NOTNULL(PMC *pmc),
- PMC *arg_tuple )
+ NOTNULL(PMC *arg_tuple) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void mmd_ensure_writable( PARROT_INTERP,
INTVAL function,
@@ -115,36 +122,64 @@
static PMC* mmd_get_ns( PARROT_INTERP )
__attribute__nonnull__(1);
-static int mmd_is_hidden( PARROT_INTERP, PMC *multi, PMC *cl )
- __attribute__nonnull__(1);
+static int mmd_is_hidden( PARROT_INTERP,
+ NOTNULL(PMC *multi),
+ NOTNULL(PMC *cl) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static PMC* mmd_make_ns( PARROT_INTERP )
__attribute__nonnull__(1);
-static int mmd_maybe_candidate( PARROT_INTERP, PMC *pmc, PMC *cl )
- __attribute__nonnull__(1);
+static int mmd_maybe_candidate( PARROT_INTERP,
+ NOTNULL(PMC *pmc),
+ NOTNULL(PMC *cl) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
-static void mmd_search_builtin( PARROT_INTERP, STRING *meth, PMC *cl )
- __attribute__nonnull__(1);
+static void mmd_search_builtin( PARROT_INTERP,
+ NOTNULL(STRING *meth),
+ NOTNULL(PMC *cl) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void mmd_search_classes( PARROT_INTERP,
- STRING *meth,
- PMC *arg_tuple,
- PMC *cl,
+ NOTNULL(STRING *meth),
+ NOTNULL(PMC *arg_tuple),
+ NOTNULL(PMC *cl),
INTVAL start_at_parent )
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
-static int mmd_search_cur_namespace( PARROT_INTERP, STRING *meth, PMC *cl )
- __attribute__nonnull__(1);
+static int mmd_search_cur_namespace( PARROT_INTERP,
+ NOTNULL(STRING *meth),
+ NOTNULL(PMC *cl) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
-static PMC* mmd_search_default( PARROT_INTERP, STRING *meth, PMC *arg_tuple )
- __attribute__nonnull__(1);
+static PMC* mmd_search_default( PARROT_INTERP,
+ NOTNULL(STRING *meth),
+ NOTNULL(PMC *arg_tuple) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
-static PMC* mmd_search_scopes( PARROT_INTERP, STRING *meth )
- __attribute__nonnull__(1);
+static PMC* mmd_search_scopes( PARROT_INTERP, NOTNULL(STRING *meth) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-static void mmd_sort_candidates( PARROT_INTERP, PMC *arg_tuple, PMC *cl )
- __attribute__nonnull__(1);
+static void mmd_sort_candidates( PARROT_INTERP,
+ NOTNULL(PMC *arg_tuple),
+ NOTNULL(PMC *cl) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
/* HEADERIZER END: static */
@@ -262,7 +297,7 @@
static funcptr_t
-get_mmd_dispatcher(PARROT_INTERP, PMC *left, PMC *right,
+get_mmd_dispatcher(PARROT_INTERP, NOTNULL(PMC *left), NOTNULL(PMC *right),
INTVAL function, NOTNULL(int *is_pmc))
{
const UINTVAL left_type = VTABLE_type(interp, left);
@@ -345,7 +380,7 @@
PARROT_API
PMC*
mmd_dispatch_p_ppp(PARROT_INTERP,
- NOTNULL(PMC *left), NOTNULL(PMC *right), PMC *dest, INTVAL func_nr)
+ NOTNULL(PMC *left), NOTNULL(PMC *right), NULLOK(PMC *dest), INTVAL
func_nr)
{
mmd_f_p_ppp real_function;
int is_pmc;
@@ -373,7 +408,7 @@
PARROT_API
PMC*
mmd_dispatch_p_pip(PARROT_INTERP,
- NOTNULL(PMC *left), INTVAL right, PMC *dest, INTVAL func_nr)
+ NOTNULL(PMC *left), INTVAL right, NULLOK(PMC *dest), INTVAL func_nr)
{
int is_pmc;
@@ -406,7 +441,7 @@
PARROT_API
PMC*
mmd_dispatch_p_pnp(PARROT_INTERP,
- NOTNULL(PMC *left), FLOATVAL right, PMC *dest, INTVAL func_nr)
+ NOTNULL(PMC *left), FLOATVAL right, NULLOK(PMC *dest), INTVAL func_nr)
{
mmd_f_p_pnp real_function;
int is_pmc;
@@ -434,7 +469,7 @@
PARROT_API
PMC*
mmd_dispatch_p_psp(PARROT_INTERP,
- NOTNULL(PMC *left), STRING *right, PMC *dest, INTVAL func_nr)
+ NOTNULL(PMC *left), NOTNULL(STRING *right), NULLOK(PMC *dest), INTVAL
func_nr)
{
mmd_f_p_psp real_function;
int is_pmc;
@@ -1079,7 +1114,7 @@
*/
static PMC*
-mmd_search_default(PARROT_INTERP, STRING *meth, PMC *arg_tuple)
+mmd_search_default(PARROT_INTERP, NOTNULL(STRING *meth), NOTNULL(PMC
*arg_tuple))
{
INTVAL n;
@@ -1134,8 +1169,8 @@
*/
static void
-mmd_search_classes(PARROT_INTERP, STRING *meth, PMC *arg_tuple,
- PMC *cl, INTVAL start_at_parent)
+mmd_search_classes(PARROT_INTERP, NOTNULL(STRING *meth),
+ NOTNULL(PMC *arg_tuple), NOTNULL(PMC *cl), INTVAL start_at_parent)
{
INTVAL type1;
@@ -1199,7 +1234,7 @@
*/
static PMC*
-mmd_cvt_to_types(PARROT_INTERP, PMC *multi_sig)
+mmd_cvt_to_types(PARROT_INTERP, NOTNULL(PMC *multi_sig))
{
const INTVAL n = VTABLE_elements(interp, multi_sig);
INTVAL i;
@@ -1229,7 +1264,7 @@
#define MMD_BIG_DISTANCE 0x7fff
static UINTVAL
-mmd_distance(PARROT_INTERP, NOTNULL(PMC *pmc), PMC *arg_tuple)
+mmd_distance(PARROT_INTERP, NOTNULL(PMC *pmc), NOTNULL(PMC *arg_tuple))
{
PMC *multi_sig, *mro;
INTVAL i, n, args, dist, j, m;
@@ -1334,7 +1369,7 @@
*/
static void
-mmd_sort_candidates(PARROT_INTERP, PMC *arg_tuple, PMC *cl)
+mmd_sort_candidates(PARROT_INTERP, NOTNULL(PMC *arg_tuple), NOTNULL(PMC *cl))
{
INTVAL i;
PMC *nci;
@@ -1399,7 +1434,7 @@
*/
static PMC*
-mmd_search_scopes(PARROT_INTERP, STRING *meth)
+mmd_search_scopes(PARROT_INTERP, NOTNULL(STRING *meth))
{
PMC * const candidate_list = pmc_new(interp, enum_class_ResizablePMCArray);
@@ -1420,7 +1455,7 @@
*/
static int
-mmd_is_hidden(PARROT_INTERP, PMC *multi, PMC *cl)
+mmd_is_hidden(PARROT_INTERP, NOTNULL(PMC *multi), NOTNULL(PMC *cl))
{
/*
* if the candidate list already has the a sub with the same
@@ -1447,7 +1482,7 @@
*/
static int
-mmd_maybe_candidate(PARROT_INTERP, PMC *pmc, PMC *cl)
+mmd_maybe_candidate(PARROT_INTERP, NOTNULL(PMC *pmc), NOTNULL(PMC *cl))
{
INTVAL i, n;
@@ -1488,7 +1523,7 @@
*/
static int
-mmd_search_cur_namespace(PARROT_INTERP, STRING *meth, PMC *cl)
+mmd_search_cur_namespace(PARROT_INTERP, NOTNULL(STRING *meth), NOTNULL(PMC
*cl))
{
PMC * const pmc = Parrot_find_global_cur(interp, meth);
@@ -1523,7 +1558,7 @@
*/
static void
-mmd_search_builtin(PARROT_INTERP, STRING *meth, PMC *cl)
+mmd_search_builtin(PARROT_INTERP, NOTNULL(STRING *meth), NOTNULL(PMC *cl))
{
PMC * const ns = mmd_get_ns(interp);
PMC * const pmc = Parrot_find_global_n(interp, ns, meth);
@@ -1533,7 +1568,7 @@
static PMC *
-mmd_create_builtin_multi_stub(PARROT_INTERP, PMC* ns, INTVAL func_nr)
+mmd_create_builtin_multi_stub(PARROT_INTERP, NOTNULL(PMC* ns), INTVAL func_nr)
{
const char * name = Parrot_MMD_method_name(interp, func_nr);
/* create in constant pool */
@@ -1545,7 +1580,7 @@
}
static void
-mmd_create_builtin_multi_meth_2(PARROT_INTERP, PMC *ns,
+mmd_create_builtin_multi_meth_2(PARROT_INTERP, NOTNULL(PMC *ns),
INTVAL func_nr, INTVAL type, INTVAL right, funcptr_t func_ptr)
{
const char *short_name;
@@ -1633,7 +1668,7 @@
}
static void
-mmd_create_builtin_multi_meth(PARROT_INTERP, PMC *ns, INTVAL type,
+mmd_create_builtin_multi_meth(PARROT_INTERP, NOTNULL(PMC *ns), INTVAL type,
NOTNULL(const MMD_init *entry))
{
mmd_create_builtin_multi_meth_2(interp, ns,
@@ -1650,7 +1685,7 @@
PARROT_API
void
Parrot_mmd_register_table(PARROT_INTERP, INTVAL type,
- const MMD_init *mmd_table, INTVAL n)
+ NOTNULL(const MMD_init *mmd_table), INTVAL n)
{
MMD_table * const table = interp->binop_mmd_funcs;
PMC * const ns = mmd_make_ns(interp);
Modified: trunk/src/objects.c
==============================================================================
--- trunk/src/objects.c (original)
+++ trunk/src/objects.c Sat Jul 14 23:19:53 2007
@@ -25,15 +25,22 @@
/* HEADERIZER BEGIN: static */
-static INTVAL attr_str_2_num( PARROT_INTERP, PMC *object, STRING *attr )
- __attribute__nonnull__(1);
+static INTVAL attr_str_2_num( PARROT_INTERP,
+ NOTNULL(PMC *object),
+ NOTNULL(STRING *attr) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static PMC* C3_merge( PARROT_INTERP, NOTNULL(PMC *merge_list) )
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static PMC* class_mro_merge( PARROT_INTERP, PMC *seqs )
- __attribute__nonnull__(1);
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static PMC* class_mro_merge( PARROT_INTERP, NOTNULL(PMC *seqs) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static PMC* create_class_mro( PARROT_INTERP, NOTNULL(PMC *_class) )
__attribute__nonnull__(1)
@@ -51,7 +58,10 @@
PMC *sub )
__attribute__nonnull__(1);
-static void do_initcall( PARROT_INTERP, PMC* _class, PMC *object, PMC *init )
+static void do_initcall( PARROT_INTERP,
+ NULLOK(PMC* _class),
+ NULLOK(PMC *object),
+ NULLOK(PMC *init) )
__attribute__nonnull__(1);
static void fail_if_exist( PARROT_INTERP, NOTNULL(PMC *name) )
@@ -61,9 +71,10 @@
PARROT_WARN_UNUSED_RESULT
static PMC * find_method_direct_1( PARROT_INTERP,
NOTNULL(PMC *_class),
- STRING *method_name )
+ NOTNULL(STRING *method_name) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
static PMC* find_vtable_meth_ns( PARROT_INTERP, PMC *ns, INTVAL vtable_index )
@@ -71,15 +82,17 @@
PARROT_WARN_UNUSED_RESULT
static PMC* get_init_meth( PARROT_INTERP,
- PMC *_class,
- STRING *prop_str,
+ NOTNULL(PMC *_class),
+ NOTNULL(STRING *prop_str),
NOTNULL(STRING **meth_str) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
__attribute__nonnull__(4);
static void instantiate_object( PARROT_INTERP,
NOTNULL(PMC *object),
- PMC *init )
+ NULLOK(PMC *init) )
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -90,15 +103,20 @@
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
-static PMC* not_empty( PARROT_INTERP, PMC *seqs )
- __attribute__nonnull__(1);
+PARROT_CANNOT_RETURN_NULL
+static PMC* not_empty( PARROT_INTERP, NOTNULL(PMC *seqs) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static void parrot_class_register( PARROT_INTERP,
- PMC *name,
- PMC *new_class,
+ NOTNULL(PMC *name),
+ NOTNULL(PMC *new_class),
NULLOK(PMC *parent),
- PMC *mro )
- __attribute__nonnull__(1);
+ NOTNULL(PMC *mro) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(5);
static void rebuild_attrib_stuff( PARROT_INTERP, NOTNULL(PMC *_class) )
__attribute__nonnull__(1)
@@ -702,8 +720,8 @@
*/
static void
-parrot_class_register(PARROT_INTERP, PMC *name,
- PMC *new_class, NULLOK(PMC *parent), PMC *mro)
+parrot_class_register(PARROT_INTERP, NOTNULL(PMC *name),
+ NOTNULL(PMC *new_class), NULLOK(PMC *parent), NOTNULL(PMC *mro))
{
VTABLE *new_vtable, *parent_vtable;
PMC *vtable_pmc, *ns, *top;
@@ -808,7 +826,8 @@
PARROT_WARN_UNUSED_RESULT
static PMC*
-get_init_meth(PARROT_INTERP, PMC *_class, STRING *prop_str, NOTNULL(STRING
**meth_str))
+get_init_meth(PARROT_INTERP, NOTNULL(PMC *_class),
+ NOTNULL(STRING *prop_str), NOTNULL(STRING **meth_str))
{
STRING *meth;
HashBucket *b;
@@ -841,7 +860,8 @@
static void
-do_initcall(PARROT_INTERP, PMC* _class, PMC *object, PMC *init)
+do_initcall(PARROT_INTERP, NULLOK(PMC* _class), NULLOK(PMC *object),
+ NULLOK(PMC *init))
{
PMC * const classsearch_array = _class->vtable->mro;
INTVAL i, nparents;
@@ -949,20 +969,20 @@
PARROT_API
void
-Parrot_instantiate_object_init(PARROT_INTERP, PMC *object, PMC *init)
+Parrot_instantiate_object_init(PARROT_INTERP, NOTNULL(PMC *object),
NOTNULL(PMC *init))
{
instantiate_object(interp, object, init);
}
PARROT_API
void
-Parrot_instantiate_object(PARROT_INTERP, PMC *object)
+Parrot_instantiate_object(PARROT_INTERP, NOTNULL(PMC *object))
{
instantiate_object(interp, object, NULL);
}
static void
-instantiate_object(PARROT_INTERP, NOTNULL(PMC *object), PMC *init)
+instantiate_object(PARROT_INTERP, NOTNULL(PMC *object), NULLOK(PMC *init))
{
SLOTTYPE *new_object_array;
INTVAL attrib_count, i;
@@ -1014,8 +1034,9 @@
/* create a list if non-empty lists */
PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
static PMC*
-not_empty(PARROT_INTERP, PMC *seqs)
+not_empty(PARROT_INTERP, NOTNULL(PMC *seqs))
{
INTVAL i;
PMC * const nseqs = pmc_new(interp, enum_class_ResizablePMCArray);
@@ -1031,8 +1052,10 @@
}
/* merge the list if lists */
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
static PMC*
-class_mro_merge(PARROT_INTERP, PMC *seqs)
+class_mro_merge(PARROT_INTERP, NOTNULL(PMC *seqs))
{
/* silence compiler uninit warning */
PMC *cand = NULL;
@@ -1500,7 +1523,7 @@
PARROT_WARN_UNUSED_RESULT
static PMC *
find_method_direct_1(PARROT_INTERP, NOTNULL(PMC *_class),
- STRING *method_name)
+ NOTNULL(STRING *method_name))
{
INTVAL i;
@@ -1600,7 +1623,7 @@
PARROT_API
PMC *
-Parrot_get_attrib_by_num(PARROT_INTERP, PMC *object, INTVAL attrib)
+Parrot_get_attrib_by_num(PARROT_INTERP, NOTNULL(PMC *object), INTVAL attrib)
{
/*
* this is called from ParrotObject's vtable now, so
@@ -1617,7 +1640,7 @@
}
static INTVAL
-attr_str_2_num(PARROT_INTERP, PMC *object, STRING *attr)
+attr_str_2_num(PARROT_INTERP, NOTNULL(PMC *object), NOTNULL(STRING *attr))
{
PMC *_class, *attr_hash;
SLOTTYPE *class_array;
@@ -1695,7 +1718,8 @@
PARROT_API
void
-Parrot_set_attrib_by_num(PARROT_INTERP, PMC *object, INTVAL attrib, PMC *value)
+Parrot_set_attrib_by_num(PARROT_INTERP, NOTNULL(PMC *object),
+ INTVAL attrib, NOTNULL(PMC *value))
{
SLOTTYPE * const attrib_array = PMC_data_typed(object, SLOTTYPE *);
const INTVAL attrib_count = PMC_int_val(object);
@@ -1716,7 +1740,8 @@
PARROT_API
void
-Parrot_set_attrib_by_str(PARROT_INTERP, PMC *object, STRING *attr, PMC *value)
+Parrot_set_attrib_by_str(PARROT_INTERP, NOTNULL(PMC *object),
+ NOTNULL(STRING *attr), NOTNULL(PMC *value))
{
Parrot_set_attrib_by_num(interp, object,
attr_str_2_num(interp, object, attr), value);
Modified: trunk/src/packfile.c
==============================================================================
--- trunk/src/packfile.c (original)
+++ trunk/src/packfile.c Sat Jul 14 23:19:53 2007
@@ -109,9 +109,10 @@
static opcode_t * directory_unpack( PARROT_INTERP,
NOTNULL(PackFile_Segment *segp),
- opcode_t *cursor )
+ NOTNULL(opcode_t *cursor) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static PMC* do_1_sub_pragma( PARROT_INTERP,
NOTNULL(PMC *sub_pmc),
@@ -143,8 +144,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void fixup_destroy( PARROT_INTERP, PackFile_Segment *self )
- __attribute__nonnull__(1);
+static void fixup_destroy( PARROT_INTERP, NOTNULL(PackFile_Segment *self) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static PackFile_Segment * fixup_new(
SHIM_INTERP,
@@ -216,8 +218,10 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-static INTVAL pf_register_standard_funcs( PARROT_INTERP, PackFile *pf )
- __attribute__nonnull__(1);
+static INTVAL pf_register_standard_funcs( PARROT_INTERP,
+ NOTNULL(PackFile *pf) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
static PMC* run_sub( PARROT_INTERP, NOTNULL(PMC *sub_pmc) )
__attribute__nonnull__(1)
@@ -225,9 +229,10 @@
static void segment_init(
NOTNULL(PackFile_Segment *self),
- PackFile *pf,
+ NOTNULL(PackFile *pf),
NOTNULL(const char *name) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
__attribute__nonnull__(3);
static void sort_segs( NOTNULL(PackFile_Directory *dir) )
@@ -1170,7 +1175,7 @@
*/
static INTVAL
-pf_register_standard_funcs(PARROT_INTERP, PackFile *pf)
+pf_register_standard_funcs(PARROT_INTERP, NOTNULL(PackFile *pf))
{
PackFile_funcs dirf = {
directory_new,
@@ -1239,12 +1244,13 @@
PARROT_API
PackFile_Segment *
-PackFile_Segment_new_seg(PARROT_INTERP, NOTNULL(PackFile_Directory *dir),
UINTVAL type,
- const char *name, int add)
+PackFile_Segment_new_seg(PARROT_INTERP, NOTNULL(PackFile_Directory *dir),
+ UINTVAL type, NOTNULL(const char *name), int add)
{
PackFile * const pf = dir->base.pf;
PackFile_Segment_new_func_t f = pf->PackFuncs[type].new_seg;
PackFile_Segment * const seg = (f)(interp, pf, name, add);
+
segment_init(seg, pf, name);
seg->type = type;
if (add)
@@ -1460,7 +1466,7 @@
*/
static opcode_t *
-directory_unpack(PARROT_INTERP, NOTNULL(PackFile_Segment *segp), opcode_t
*cursor)
+directory_unpack(PARROT_INTERP, NOTNULL(PackFile_Segment *segp),
NOTNULL(opcode_t *cursor))
{
size_t i;
PackFile_Directory * const dir = (PackFile_Directory *) segp;
@@ -1736,7 +1742,8 @@
*/
static void
-segment_init(NOTNULL(PackFile_Segment *self), PackFile *pf, NOTNULL(const char
*name))
+segment_init(NOTNULL(PackFile_Segment *self), NOTNULL(PackFile *pf),
+ NOTNULL(const char *name))
{
self->pf = pf;
self->type = PF_UNKNOWN_SEG;
@@ -2547,7 +2554,7 @@
*/
static void
-fixup_destroy(PARROT_INTERP, PackFile_Segment *self)
+fixup_destroy(PARROT_INTERP, NOTNULL(PackFile_Segment *self))
{
PackFile_FixupTable * const ft = (PackFile_FixupTable *)self;
PackFile_FixupTable_clear(interp, ft);
Modified: trunk/src/pic_jit.c
==============================================================================
--- trunk/src/pic_jit.c (original)
+++ trunk/src/pic_jit.c Sat Jul 14 23:19:53 2007
@@ -51,19 +51,28 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static int jit_can_compile_sub( PARROT_INTERP, PMC *sub )
- __attribute__nonnull__(1);
+PARROT_WARN_UNUSED_RESULT
+static int jit_can_compile_sub( PARROT_INTERP, NOTNULL(PMC *sub) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
static int ops_jittable( PARROT_INTERP,
- PMC *sub,
- const PMC *sig_results,
+ NOTNULL(PMC *sub),
+ NOTNULL(const PMC *sig_results),
NOTNULL(PackFile_ByteCode *seg),
- opcode_t *pc,
- opcode_t *end,
- int *flags )
+ NOTNULL(opcode_t *pc),
+ NOTNULL(opcode_t *end),
+ NOTNULL(int *flags) )
__attribute__nonnull__(1)
- __attribute__nonnull__(4);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5)
+ __attribute__nonnull__(6)
+ __attribute__nonnull__(7);
+PARROT_WARN_UNUSED_RESULT
static opcode_t * pic_test_func( PARROT_INTERP,
INTVAL *sig_bits,
NOTNULL(void **args) )
@@ -110,6 +119,7 @@
with -C and -S runcores.
*/
+PARROT_WARN_UNUSED_RESULT
static opcode_t *
pic_test_func(PARROT_INTERP, SHIM(INTVAL *sig_bits), NOTNULL(void **args))
{
@@ -123,8 +133,9 @@
}
# endif
+PARROT_WARN_UNUSED_RESULT
static int
-jit_can_compile_sub(PARROT_INTERP, PMC *sub)
+jit_can_compile_sub(PARROT_INTERP, NOTNULL(PMC *sub))
{
const jit_arch_info * const info = Parrot_jit_init(interp);
const jit_arch_regs * const regs = info->regs + JIT_CODE_SUB_REGS_ONLY;
@@ -257,9 +268,11 @@
return 1;
}
+PARROT_WARN_UNUSED_RESULT
static int
-ops_jittable(PARROT_INTERP, PMC *sub, const PMC *sig_results,
- NOTNULL(PackFile_ByteCode *seg), opcode_t *pc, opcode_t *end, int
*flags)
+ops_jittable(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const PMC *sig_results),
+ NOTNULL(PackFile_ByteCode *seg), NOTNULL(opcode_t *pc),
+ NOTNULL(opcode_t *end), NOTNULL(int *flags))
{
while (pc < end) {
/* special opcodes which are handled, but not marked as JITtable */
Modified: trunk/src/pmc_freeze.c
==============================================================================
--- trunk/src/pmc_freeze.c (original)
+++ trunk/src/pmc_freeze.c Sat Jul 14 23:19:53 2007
@@ -244,23 +244,26 @@
PARROT_INLINE
static int todo_list_seen( PARROT_INTERP,
- PMC *pmc,
+ NOTNULL(PMC *pmc),
NOTNULL(visit_info *info),
NOTNULL(UINTVAL *id) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
__attribute__nonnull__(3)
__attribute__nonnull__(4);
static void visit_loop_next_for_GC( PARROT_INTERP,
NOTNULL(PMC *current),
- visit_info *info )
+ NOTNULL(visit_info *info) )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void visit_loop_todo_list( PARROT_INTERP,
- PMC *current,
+ NOTNULL(PMC *current),
NOTNULL(visit_info *info) )
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
__attribute__nonnull__(3);
static void visit_next_for_GC( PARROT_INTERP,
@@ -277,8 +280,12 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-static void visit_todo_list_thaw( PARROT_INTERP, PMC* old, visit_info* info )
- __attribute__nonnull__(1);
+static void visit_todo_list_thaw( PARROT_INTERP,
+ NOTNULL(PMC* old),
+ NOTNULL(visit_info* info) )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
/* HEADERIZER END: static */
@@ -1246,7 +1253,7 @@
PARROT_INLINE
static int
-todo_list_seen(PARROT_INTERP, PMC *pmc, NOTNULL(visit_info *info),
+todo_list_seen(PARROT_INTERP, NOTNULL(PMC *pmc), NOTNULL(visit_info *info),
NOTNULL(UINTVAL *id))
{
HashBucket * const b =
@@ -1331,7 +1338,7 @@
*/
static void
-visit_todo_list_thaw(PARROT_INTERP, PMC* old, visit_info* info)
+visit_todo_list_thaw(PARROT_INTERP, NOTNULL(PMC* old), NOTNULL(visit_info*
info))
{
do_thaw(interp, old, info);
}
@@ -1347,7 +1354,7 @@
static void
visit_loop_next_for_GC(PARROT_INTERP, NOTNULL(PMC *current),
- visit_info *info)
+ NOTNULL(visit_info *info))
{
visit_next_for_GC(interp, current, info);
if (current->pmc_ext) {
@@ -1370,10 +1377,10 @@
*/
static void
-visit_loop_todo_list(PARROT_INTERP, PMC *current,
+visit_loop_todo_list(PARROT_INTERP, NOTNULL(PMC *current),
NOTNULL(visit_info *info))
{
- List *todo = (List *)PMC_data(info->todo);
+ List * const todo = (List *)PMC_data(info->todo);
PMC *finish_list_pmc;
int i, n;
List *finish_list = NULL; /* gcc -O3 warning */
Modified: trunk/src/stm/backend.c
==============================================================================
--- trunk/src/stm/backend.c (original)
+++ trunk/src/stm/backend.c Sat Jul 14 23:19:53 2007
@@ -104,7 +104,9 @@
static int is_version( NOTNULL(const void *maybe_version) )
__attribute__nonnull__(1);
-static PMC * local_pmc_copy( PARROT_INTERP, PMC * const original )
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static PMC * local_pmc_copy( PARROT_INTERP, NULLOK(PMC * const original) )
__attribute__nonnull__(1);
static void mark_read_record( PARROT_INTERP, NOTNULL(STM_read_record *read) )
@@ -118,11 +120,13 @@
static int merge_transactions( PARROT_INTERP,
NOTNULL(STM_tx_log *log),
- STM_tx_log_sub *outer,
- STM_tx_log_sub *inner,
+ NOTNULL(STM_tx_log_sub *outer),
+ NOTNULL(STM_tx_log_sub *inner),
int always )
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
PARROT_WARN_UNUSED_RESULT
static void * next_version( NOTNULL(const void *old_version) )
@@ -135,6 +139,7 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
static int safe_to_clone( PARROT_INTERP, NOTNULL(const PMC * const original) )
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -373,7 +378,7 @@
*/
static int
merge_transactions(PARROT_INTERP, NOTNULL(STM_tx_log *log),
- STM_tx_log_sub *outer, STM_tx_log_sub *inner, int always)
+ NOTNULL(STM_tx_log_sub *outer), NOTNULL(STM_tx_log_sub *inner), int
always)
{
int i;
int status;
@@ -1180,6 +1185,7 @@
return read->value;
}
+PARROT_WARN_UNUSED_RESULT
static int
safe_to_clone(PARROT_INTERP, NOTNULL(const PMC * const original))
{
@@ -1192,8 +1198,10 @@
return 0;
}
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static PMC *
-local_pmc_copy(PARROT_INTERP, PMC * const original)
+local_pmc_copy(PARROT_INTERP, NULLOK(PMC * const original))
{
if (PMC_IS_NULL(original))
return PMCNULL;
Modified: trunk/tools/build/headerizer.pl
==============================================================================
--- trunk/tools/build/headerizer.pl (original)
+++ trunk/tools/build/headerizer.pl Sat Jul 14 23:19:53 2007
@@ -162,7 +162,6 @@
for (@args) {
/\S+\s+\S+/ || ( $_ eq '...' ) || ( $_ eq 'void' ) || ( $_ =~
/(PARROT|NULLOK|SHIM)_INTERP/ )
or die "Bad args in $proto";
- s/SHIM\(\s*(\w+.*\w+)\s*\)/$1/e;
}
my $is_static = 0;
@@ -181,6 +180,7 @@
};
}
+
sub attrs_from_args {
my $func = shift;
my @args = @_;
@@ -206,6 +206,7 @@
return @attrs;
}
+
sub make_function_decls {
my @funcs = @_;
|
|