I think you solved the mystery.
You're right, the basic problem is not a const problem, but a * [] problem
As a test.c:
int main (void)
{
int data[3];
*(data++);
return 1;
}gcc test.c gives: -- wrong type argument to increment
But:
int main (void)
{
int *data;
*(data++);
return 1;
}Compiles just fine with gcc.
I didn't take a look at the latest CVS snapshot, but this might be a good thing to fix it so that the gcc build doesn't break in the future and others spend time asking themselves what's so funny about this */[] things :)
I'll post a patch later if anyone is interested, this kind of problem arises in a few lines.
Denis
Christian Hudon wrote:
The compilers yells at me on line 233 of libFLAC/lpc.c
*(residual++) = *(data++) - (sum >> lp_quantization); --> data is const and cannot be modified
Funny thing is, if data is declared: const FLAC__int32 *data instead of const FLAC__int32 data[]
everything is ok.
Is this a bug in my compiler, or a personnal lack of understanding of
the difference in C between *data and data[] ?
I'm not a great language lawyer, but I don't think you can modify the pointer when something is declared int foo[]. You can modify the data pointed to, with foo[0] = 42, etc. but you can't do stuff like foo++ or foo = (int*)something. The same error would show up with FLAC__int32 * const data. If you want to change the pointer, you need to declare it as a pointer with int *foo (or const int *foo, which means you can modify the pointer, but not the data it points to).
My 2 cents. I'll go back to lurking now. :-)
Christian
------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Flac-dev mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/flac-dev
------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Flac-dev mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/flac-dev
