Re: [AD] Const correctness |
[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]
In reply to Bob <ohannessian@xxxxxxxxxx>: >obj/msvc/runner.exe cl @ -nologo -DALLEGRO_SRC -DDEBUGMODE=1 -W1 -Gd -Zi >-MTd -I >. -I./include -Foobj/msvc/alld/glyph.obj -c src/glyph.c >glyph.c >src/glyph.c(144) : warning C4090: 'initializing' : different 'const' >qualifiers >src/glyph.c(158) : warning C4090: 'initializing' : different 'const' >qualifiers >src/glyph.c(172) : warning C4090: 'initializing' : different 'const' >qualifiers >src/glyph.c(186) : warning C4090: 'initializing' : different 'const' >qualifiers Hrm. The only thing I can suggest is changing line 27 from: unsigned char *data = glyph->dat; \ to: const unsigned char *data = glyph->dat; \ See if that compiles without a warning. My understanding of the workings of this (I could be wrong, of course) would indicate that this *shouldn't* be an error: - `glyph' is a `const FONT_GLYPH*' - the member `dat' would therefore be of type `unsigned char * const' - which means we can assign the value of dat to a variable of type `unsigned char *' without ramification (just as you can assign a `const int' to a variable of type `int'). - declaring `glyph' as `const' doesn't mean we declare data pointed to by pointers in `glyph' as non-volatile. >obj/msvc/runner.exe cl @ -nologo -DALLEGRO_SRC -DDEBUGMODE=1 -W1 -Gd -Zi >-MTd -I >. -I./include -Foobj/msvc/alld/modesel.obj -c src/modesel.c >modesel.c >src/modesel.c(243) : warning C4090: 'initializing' : different 'const' >qualifiers >src/modesel.c(244) : warning C4090: 'initializing' : different 'const' >qualifiers >src/modesel.c(258) : warning C4090: 'initializing' : different 'const' >qualifiers >src/modesel.c(259) : warning C4090: 'initializing' : different 'const' >qualifiers >src/modesel.c(260) : warning C4090: 'initializing' : different 'const' >qualifiers The only thing I can suggest here is that you cast the dp parameter; ie. write (void*)gfx_card_getter, etc. Again, I'm not sure this should be a warning; if the return type of a function is `const', does that mean that its address is of type `void*' or `const void*' ? Sorry; I'm not explaining myself very well. >obj/msvc/runner.exe cl @ -nologo -DDEBUGMODE=1 -W1 -Gd -Zi -MTd -I. >-I./include >-Foobj/msvc/alld/setup.obj -c setup/setup.c >setup.c >setup/setup.c(1802) : warning C4090: 'initializing' : different 'const' >qualifiers >setup/setup.c(1814) : warning C4090: 'initializing' : different 'const' >qualifiers As per src/modesel.c >obj/msvc/runner.exe cl @ -nologo -DDEBUGMODE=1 -W1 -Gd -Zi -MTd -I. >-I./include >-Foobj/msvc/alld/datgrid.obj -c tools/plugins/datgrid.c >datgrid.c >tools/plugins/datgrid.c(367) : warning C4090: 'initializing' : different >'const' qualifiers >tools/plugins/datgrid.c(369) : warning C4090: 'initializing' : different >'const' qualifiers As per src/modesel.c >tools/plugins/datgrid.c(203) : warning C4700: local variable 'dat' used >without having been initialized OK, this does look like a genuine bug to me. Can somebody who is familiar with that code read it and see? Bye for now, -- Laurence Withers, lwithers@xxxxxxxxxx http://www.lwithers.demon.co.uk/
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |