On Wednesday 03 December 2008 18:00:32 Jarkko Hietaniemi wrote:

> First we get a couple of warnings fro some files, but then one file
> refuses to compile (see below).  I didn't notice any other warnings or
> failures during Configure.pl and/or during compilation.

Thanks for the report.

> src/ops/core_ops.c
> cc: Warning: src/ops/object.ops, line 436: Non-void function
> "Parrot_removeattribute_p_s" does not contain a return statement.
> (missingreturn) opcode_t *

We should fix a code generator to handle these, but that's a low priority 
unless I or someone else has a brilliant idea which makes it take five 
minutes.

> cc: Warning: src/ops/object.ops, line 532: Non-void function
> "Parrot_pic_set_returns___pc" does not contain a return statement.
> (missingreturn) opcode_t *

This code's going away.

> src/dynext.c
> cc: Info: src/dynext.c, line 367: In this statement, "(Parrot_dlsym(...))"
> of type "pointer to void", is being converted to "pointer to function
> (pointer to struct parrot_interp_t) returning pointer to struct PMC".  Such
> a cast is not permitted by the standard. (nonstandcast)
> (Parrot_dlsym(handle, cload_func_name));
> ------------^
> cc: Info: src/dynext.c, line 375: In this statement, "(Parrot_dlsym(...))"
> of type "pointer to void", is being converted to "pointer to function
> (pointer to struct parrot_interp_t, pointer to struct PMC) returning void".
>  Such a cast is not permitted by the standard. (nonstandcast) init_func    
>  = (void (*)(PARROT_INTERP, PMC *))(Parrot_dlsym(handle,
> ---------------------------------------------------------^

I added a couple of D2FPTR macros, as we've borrowed them from Perl 5, in 
r34293.  Hopefully this will clear up the warnings.

> src/encoding.c
> cc: Warning: src/encoding.c, line 164: Non-void function
> "Parrot_load_encoding" does not contain a return statement. (missingreturn)
> const ENCODING *
> ^
> cc: Warning: src/encoding.c, line 421: Non-void function
> "Parrot_find_encoding_converter" does not contain a return statement.
> (missingreturn) encoding_converter_t
> ^

I added some function decorations in r34295 which should clear up these 
warnings.

> src/exceptions.c
> cc: Error: src/exceptions.c, line 74: In this statement, "_CONST_STRING_74"
> is not declared. (undeclared) VTABLE_set_integer_keyed_str(interp,
> exception,

I manually fixed these in r34094 and fixed our preprocessor to reject all 
CONST_STRING macros broken across lines in r34095, so this problem should 
never recur.

-- c

Reply via email to