Index: compilers/imcc/imc.c
===================================================================
--- compilers/imcc/imc.c	(revision 21496)
+++ compilers/imcc/imc.c	(working copy)
@@ -23,7 +23,9 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_CANNOT_RETURN_NULL
 static IMC_Unit * imc_new_unit( IMC_Unit_Type t );
+
 /* HEADERIZER END: static */
 
 #define COMPILE_IMMEDIATE 1
@@ -87,7 +89,7 @@
 
 PARROT_API
 void
-imc_cleanup(PARROT_INTERP, void *yyscanner)
+imc_cleanup(PARROT_INTERP, NULLOK(void *yyscanner))
 {
     IMCC_pop_parser_state(interp, yyscanner);
     clear_globals(interp);
@@ -99,6 +101,7 @@
 /*
  * Create a new IMC_Unit.
  */
+PARROT_CANNOT_RETURN_NULL
 static IMC_Unit *
 imc_new_unit(IMC_Unit_Type t)
 {
@@ -113,7 +116,7 @@
  * This sets the current state of the parser. The unit
  * can be closed later retaining all the current state.
  */
-
+PARROT_CANNOT_RETURN_NULL
 IMC_Unit *
 imc_open_unit(PARROT_INTERP, IMC_Unit_Type t)
 {
Index: compilers/imcc/imc.h
===================================================================
--- compilers/imcc/imc.h	(revision 21496)
+++ compilers/imcc/imc.h	(working copy)
@@ -75,7 +75,7 @@
 /* HEADERIZER BEGIN: compilers/imcc/imc.c */
 
 PARROT_API
-void imc_cleanup( PARROT_INTERP, void *yyscanner )
+void imc_cleanup( PARROT_INTERP, NULLOK(void *yyscanner) )
         __attribute__nonnull__(1);
 
 PARROT_API
@@ -90,6 +90,7 @@
 void imc_close_unit( PARROT_INTERP, NULLOK(IMC_Unit *unit) )
         __attribute__nonnull__(1);
 
+PARROT_CANNOT_RETURN_NULL
 IMC_Unit * imc_open_unit( PARROT_INTERP, IMC_Unit_Type t )
         __attribute__nonnull__(1);
 
Index: compilers/imcc/main.c
===================================================================
--- compilers/imcc/main.c	(revision 21496)
+++ compilers/imcc/main.c	(working copy)
@@ -34,10 +34,12 @@
     NOTNULL(const char *output_file) )
         __attribute__nonnull__(2);
 
-static void
-compile_to_bytecode(PARROT_INTERP,
-                    NOTNULL(const char * const sourcefile),
-                    NOTNULL(const char * const output_file));
+static void compile_to_bytecode( PARROT_INTERP,
+    NOTNULL(const char * const sourcefile),
+    NOTNULL(const char * const output_file) )
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
 
 static void do_pre_process( PARROT_INTERP )
         __attribute__nonnull__(1);
Index: compilers/imcc/imcparser.c
===================================================================
--- compilers/imcc/imcparser.c	(revision 21496)
+++ compilers/imcc/imcparser.c	(working copy)
@@ -336,37 +336,29 @@
 
 /* HEADERIZER BEGIN: static */
 
-#ifndef YYENABLE_NLS
-#  define YYENABLE_NLS 0
-#endif
-
-#ifndef YYLTYPE_IS_TRIVIAL
-#  define YYLTYPE_IS_TRIVIAL 0
-#endif
-
 static void add_pcc_named_arg( PARROT_INTERP,
     NOTNULL(SymReg *cur_call),
-    const char     *name,
-    SymReg         *value )
+    const char *name,
+    SymReg *value )
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 static void add_pcc_named_param( PARROT_INTERP,
-    SymReg     *cur_call,
+    SymReg *cur_call,
     const char *name,
-    SymReg     *value )
+    SymReg *value )
         __attribute__nonnull__(1);
 
 static void add_pcc_named_result( PARROT_INTERP,
-    SymReg     *cur_call,
+    SymReg *cur_call,
     const char *name,
-    SymReg     *value )
+    SymReg *value )
         __attribute__nonnull__(1);
 
 static void add_pcc_named_return( PARROT_INTERP,
-    SymReg     *cur_call,
+    SymReg *cur_call,
     const char *name,
-    SymReg     *value )
+    SymReg *value )
         __attribute__nonnull__(1);
 
 static void begin_return_or_yield( PARROT_INTERP, int yield )
@@ -380,16 +372,15 @@
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
-static Instruction* func_ins(
-    PARROT_INTERP,
-    IMC_Unit   *unit,
-    SymReg     *lhs,
+static Instruction* func_ins( PARROT_INTERP,
+    IMC_Unit *unit,
+    SymReg *lhs,
     const char *op,
-    NOTNULL(SymReg **r),
+    SymReg ** r,
     int n,
     int keyv,
     int emit )
-        __attribute__nonnull__(5);
+        __attribute__nonnull__(1);
 
 static Instruction * iINDEXFETCH( PARROT_INTERP,
     IMC_Unit *unit,
@@ -399,22 +390,13 @@
         __attribute__nonnull__(1);
 
 static Instruction * iINDEXSET( PARROT_INTERP,
-    IMC_Unit *unit,
-    SymReg *r0,
-    SymReg *r1,
-    SymReg *r2 )
+    IMC_Unit * unit,
+    SymReg * r0,
+    SymReg * r1,
+    SymReg * r2 )
         __attribute__nonnull__(1);
 
-static Instruction * iLABEL( PARROT_INTERP, IMC_Unit *unit, SymReg *r0 )
-        __attribute__nonnull__(1);
-
 static const char * inv_op( const char *op );
-static Instruction * iSUBROUTINE( PARROT_INTERP,
-    IMC_Unit *unit,
-    NOTNULL(SymReg *r) )
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(3);
-
 static Instruction * MK_I( PARROT_INTERP,
     IMC_Unit *unit,
     NOTNULL(const char *fmt),
@@ -428,16 +410,16 @@
     IMC_Unit *unit,
     NOTNULL(const char *type),
     NOTNULL(SymReg *left),
-    NOTNULL(char *constant))
+    NOTNULL(char *constant) )
         __attribute__nonnull__(1)
         __attribute__nonnull__(3)
         __attribute__nonnull__(4)
         __attribute__nonnull__(5);
 
-static SymReg * mk_sub_address_fromc( PARROT_INTERP, char *name )
+static SymReg * mk_sub_address_fromc( PARROT_INTERP, char * name )
         __attribute__nonnull__(1);
 
-static SymReg * mk_sub_address_u( PARROT_INTERP, char *name )
+static SymReg * mk_sub_address_u( PARROT_INTERP, char * name )
         __attribute__nonnull__(1);
 
 static void set_lexical( PARROT_INTERP, NOTNULL(SymReg *r), char *name )
