Don't suppress the warnings, let's keep them as a reminder - either on
Linux or Windows :-)
I would suggest to look for a general solution to the object ID problem
after Pd 0.52. The GitHub issue
https://github.com/pure-data/pure-data/issues/1474 already contains a
couple of ideas.
Or better yet - perhaps just silence the warning in the windows compiler.
(I already have to silence a bunch of them that complain when I convert
double to float and whatnot).
cheers
M
On Fri, Dec 03, 2021 at 08:23:54AM -0800, Miller Puckette via Pd-dev wrote:
> So... here's no solution that
So... here's no solution that makes all compilers happy and doesn't get
Tcl in a snit... I guess the only way is to make a compiler-dependent macro
like #define ptr_to_tag(x) ((unsigned long)(x)) (for gcc) and whatever it is
now for windows... I'm OK with punting this for 0.52 and will keep it
I presume there's a good reason to change the code (what if "long" is the wrong
size?) but I'd like to figure out a way to do it that doesn't throw warnings.
Ok, now I understand the reason for those few (unsigned long) casts.
It's because the printf() family functions will check the format
IOhannes has the answer: the resulting string might not be valid Tcl
variable name.
For further discussion see:
https://github.com/pure-data/pure-data/issues/1474#issuecomment-985386181
On 03.12.2021 10:39, Christof Ressi wrote:
NOTE: although %p would be the obvious choice, we can't use it,
NOTE: although %p would be the obvious choice, we can't use it,
because the result is platform/compiler dependent. This is not a
problem most of the time but it can break in the case of a remote GUI!
We really want the pointer ID to look the same on all platforms!
Hmmm... on a second thought I
> After merging commit c019784b83 (get rid of a 3 more bogus (unsigned long)
> casts)
(Link to commit for reference: [0] )
> I'm now getting compiler warnings like this:
>
> g_editor.c:1884:73: warning: format ‘%lx’ expects argument of type ‘long
> unsigned int’, but argument 4 has type
Without any specific knowledge to the case at hand, it should normally be `%p`
to print a pointer.
Miller Puckette via Pd-dev wrote on 03/12/2021 04:57:
To Pd dev:
After merging commit c019784b83 (get rid of a 3 more bogus (unsigned long)
casts)
I'm now getting compiler warnings like this:
To Pd dev:
After merging commit c019784b83 (get rid of a 3 more bogus (unsigned long)
casts)
I'm now getting compiler warnings like this:
g_editor.c:1884:73: warning: format ‘%lx’ expects argument of type ‘long
unsigned int’, but argument 4 has type ‘struct _glist *’ [-Wformat=]
1884 |