It's ugly, but I can live with that since it's the only location
which needs this special kind of attention.
Umm. I must agree - as a workaround for 1 problematic line, the 7 +
3 line insertion is too much. Can I replace the insertion by some C
preprocessor macro (and expand it by
Dear Garrick,
Thank you for remembering your experience and posting it.
As you wrote, I'm questionable how many die-hard CW for
Mac users are writing new softwares. But I found that
same issue is found in the latest CW for embedded platform
that defines jmp_buf as an array of long pointers.
Dear Antoine,
On Wed, 12 Nov 2008 10:11:42 +0100
Antoine Leca [EMAIL PROTECTED] wrote:
So, now I have 3 workarounds:
Did you try
jmp_buf volatile* dest = ( a_struct_ptr-jb_memb );
If this works, you've got a 4th workaround: there is no difference for a
conforming compiler between the two
So, the implicit cast issue is not exceptional error in CW for
MacOS/ColdFire. Thus, I want to insert CW-specific pragma as
following. [...]
It's ugly, but I can live with that since it's the only location which
needs this special kind of attention.
Werner
[EMAIL PROTECTED] wrote:
Wow, you've done a great and detailled analysis.
Thinking about a code like:
struct a_struct_ {
jmp_buf jb_memb;
} volatile* a_struct_ptr;
volatile jmp_buf* dest = ( a_struct_ptr-jb_memb );
...
For volatile jmp_buf* dest, according to the error message
by
On Sat, 08 Nov 2008 17:13:14 +0100 (CET)
Werner LEMBERG [EMAIL PROTECTED] wrote:
a) Compile ftobjs.c (or ftbase.c) with -relax_pointers.
b) Insert #pragma mpwc_relax with appropriate conditionals (to
avoid this pragma to other compilers).
c) Use volatile void* instead of volatile
--- Garrick Meeker [EMAIL PROTECTED] wrote:
In Codewarrior jmp_buf is declared as:
typedef long *jmp_buf[70];
so the volatile FT_ValidatorRec makes the pointers volatile but this
code in ftobjs.c fails:
volatile jmp_buf* jump_buffer = valid-jump_buffer;
Error : illegal implicit
In Codewarrior jmp_buf is declared as:
typedef long *jmp_buf[70];
so the volatile FT_ValidatorRec makes the pointers volatile but this
code in ftobjs.c fails:
volatile jmp_buf* jump_buffer = valid-jump_buffer;
Error : illegal implicit conversion from 'long *volatile (*)[70]' to