[m-rev.] for review: deconstruct.named_arg for java
Paul Bone
pbone at csse.unimelb.edu.au
Mon Jul 5 14:21:32 AEST 2010
On Mon, Jul 05, 2010 at 02:04:23PM +1000, Ian MacLarty wrote:
>
> What seems to be happening is that functions are being declared with
> a prototype like the following:
>
> static void mercury__tree234__LCMCpr_insert2_1_4_0(void) __asm__("_entry_" "mercury__tree234__LCMCpr_insert2_1_4_0")
>
> and then being referred to without being defined in C code.
> The functions are in fact defined using assembly code.
>
> It seems to be the fact that the function is declared static that is
> causing gcc to expect a definition of the function in the same file.
> Removing the static keyword appears to fix the problem.
>
> Here is the hack I used to test this:
Why is there a static definition but no declaration? In other words, are these
symbols really indented to be static?
If this is true then they should be created using a different preprocessor
macro, rather than making a static macro create non-static declarations.
Alternativly, is there a missing (static) definition of these symbols? I
wouldn't think so otherwise the linker wuld fail to link the executable. Can
GCC see the static definitions if they exist?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 489 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20100705/e9b1b47e/attachment.sig>
More information about the reviews
mailing list