This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: warn/croak on "string" "string" auto-joins
- From: Adam Monsen <haircut at gmail dot com>
- To: Gabor Greif <gabor at mac dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 17 Aug 2004 17:21:48 -0700
- Subject: Re: warn/croak on "string" "string" auto-joins
- References: <AEFF4152-F0A4-11D8-A3A2-000393A34C6C@mac.com>
- Reply-to: Adam Monsen <haircut at gmail dot com>
Hi Gabor,
Thanks for your input!
On Wed, 18 Aug 2004 01:25:10 +0200, Gabor Greif <gabor@mac.com> wrote:
> Adam Monsen <haircut at gmail dot com> wrote:
> > String auto-joins can be dangerous. Is there a way to tell the
> > compiler to warn/croak when an auto-join occurs?
> >
> > For instance, find the bug in this code:
> >
> > char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
> > "Aug" "Sep", "Oct", "Nov", "Dec"};
> >
> > If not, I'd like to suggest a way to ask the compiler to strictly
> > check for this.
>
> The compiler cannot shield you from all programmer errors.
Agreed.
> This would have helped early and is good practice:
>
> char *months[12] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
> "Aug" "Sep", "Oct", "Nov", "Dec"};
>
> --> high probability warning
I'm not sure I understand, what does "high probability warning" mean?
I get no errors/warnings from the following:
#include <stdio.h>
int main( void )
{
char *months[15] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
"Aug" "Sep", "Oct", "Nov", "Dec"};
printf("7: %s\n", months[8]);
return 0;
}
compiled with 'gcc -Wall -pedantic -ansi', using GCC 3.3.3.
> Cheers,
>
> Gabor
>
> PS: I often assemble longer (format) strings from smaller ones
> by means of macros, so if this ever to become a warning I'd
> prefer to exclude macro-expanded occurrences.
But you currently have no use for the warning, correct? Or, do you
feel it is useful? I'm confused.
--
Adam Monsen <adamm@wazamatta.com>
http://adammonsen.com/