From: ludo@gnu.org (Ludovic Courtès)
To: guile-user@gnu.org
Subject: Re: Guile 1.8.2 Compile Error
Date: Tue, 13 Nov 2007 00:14:40 +0100 [thread overview]
Message-ID: <87hcjrgiov.fsf@chbouib.org> (raw)
In-Reply-To: 1194903472.7717.23.camel@vanguard.or.providence.org
Hi,
"Kevin Brott" <kevin.brott@providence.org> writes:
> In file included from ../libguile/gc.h:27,
> from ../libguile.h:73,
> from discouraged.c:22:
> ./libguile/hooks.h:43: error: expected ';', ',' or ')' before '.' token
This is the second line of the typedef for `scm_t_c_hook_function'. Can
you try compiling *only* that typedef? And then this:
typedef void * (* foo_t) (void *, void *);
Then:
typedef void (* foo_t) (void *, void *);
The `scm_t_c_hook_function' seems perfectly valid to me so if the
compiler chokes, then I'm afraid it's a broken compiler.
> Were you asking to just put the quoted code lines in a .c file and see
> what happens when I apply gcc to it, or were you looking for something
> more specific?
The former.
> In the hopes it's something simple -- if test.c is:
> ---cut---
>
> typedef void *(*scm_t_c_hook_function) (void *hook_data,
> void *func_data,
> void *data);
>
> SCM_API void scm_c_hook_add (scm_t_c_hook *hook,
> scm_t_c_hook_function func,
> void *func_data,
> int appendp);
>
> SCM_API void scm_c_hook_remove (scm_t_c_hook *hook,
> scm_t_c_hook_function func,
> void *func_data);
>
> ---cut---
>
> and I do gcc -o test test.c ... I get ...
>
> test.c:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
> test.c:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
>
> Which are the SCM_API declarations.
So now the typedef itself doesn't yield any error?
Did you prepend "#define SCM_API extern"? It will fail without this.
> ---cut---
> 41:
> 42: typedef void *(*scm_t_c_hook_function) (void *hook_data,
> 43* void *func_data,
> 44: void *data);
> 45:
> 46: typedef struct scm_t_c_hook_entry {
> 47: struct scm_t_c_hook_entry *next;
> 48* scm_t_c_hook_function func;
> 49: void *data;
> 50: } scm_t_c_hook_entry;
> 51...60
> 61: SCM_API void scm_c_hook_add (scm_t_c_hook *hook,
> 62* scm_t_c_hook_function func,
> 63* void *func_data,
> 64: int appendp);
> 65: SCM_API void scm_c_hook_remove (scm_t_c_hook *hook,
> 66* scm_t_c_hook_function func,
> 67* void *func_data);
> 68:
> ---cut---
>
> I get ...
> test2.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
> test2.c:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
>
> Which are the SCM_API declarations again.
Again, no error with the typedef?
> Suggestions, correction for a more valid / informative test?
If one of the above `foo_t' typedefs works, then you can try compiling
this:
extern void make_foo (void *x, foo_t function);
Then maybe this:
extern void make_foo (void *x, foo_t *function);
This is all trial-and-error since I have no idea of what's wrong with
this compiler.
I quickly browsed the bug database at gcc.gnu.org and failed to find
anything related. You might want to try that too...
Thanks,
Ludovic.
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
next prev parent reply other threads:[~2007-11-12 23:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1194888764.4167.13.camel@vanguard.or.providence.org>
[not found] ` <87fxzbql1e.fsf@chbouib.org>
2007-11-12 21:37 ` Guile 1.8.2 Compile Error Kevin Brott
2007-11-12 23:14 ` Ludovic Courtès [this message]
2007-11-12 23:30 ` Kevin Brott
2007-11-12 23:39 ` Guile 1.8.2 Compile Error [GAH] Kevin Brott
2007-11-12 23:46 ` Kevin Brott
2007-11-12 23:51 ` Ludovic Courtès
2007-11-13 0:08 ` Kevin Brott
2007-11-13 19:00 ` Kevin Brott
2007-11-13 22:20 ` Ludovic Courtès
2007-11-13 23:05 ` Kevin Brott
2007-11-14 0:39 ` Neil Jerram
2007-11-14 1:29 ` Kevin Brott
2007-11-14 1:54 ` Kevin Brott
2007-11-14 13:35 ` Ludovic Courtès
2007-11-14 17:59 ` Kevin Brott
2007-11-14 18:37 ` Kevin Brott
2007-11-15 20:50 ` Neil Jerram
2007-11-16 16:50 ` Ludovic Courtès
2007-11-26 21:26 ` Neil Jerram
2007-09-13 15:26 Guile 1.8.2 Compile Error ericbambach1
2007-09-15 9:06 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87hcjrgiov.fsf@chbouib.org \
--to=ludo@gnu.org \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).