This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] microMIPS support


On Thu, 26 Apr 2012, Jan Kratochvil wrote:

> > > static const char *const mips_compression_strings[] = {
> > 
> >  Hmm, no objection to your suggestion per se, but is it allowed by C89?
> 
> It is already used in GDB since:
> 	http://sourceware.org/ml/gdb-patches/2012-01/msg00973.html
> 	[obv] Code cleanup: add_setshow_enum_cmd: Make 1440 bytes of data segment read-only

 But it's your own change and there wasn't any discussion about it there, 
so I can't take it as an argument, sorry.

> I am not aware of any compatibility issue of it.

 But are you absolutely sure that it was a supported construct with C89 or 
are you only assuming having no counter-evidence?  Do you have a copy of 
the standard?  Unfortunately I don't or otherwise I would have checked 
myself and C99 doesn't note it in the list of major changes from the 
previous version of the standard (but then I wouldn't classify it as a 
major change).

 At the time I learnt C (some 18 years ago) that certainly wasn't a 
construct I had seen in any language reference I had available or was made 
aware of in any other way and I am fairly sure it's quite a recent 
addition.  I first heard of it in the 2000s only (and then well into).  
An equivalent construct that I am sure to be portable is:

typedef const char *ccharp;
const ccharp foo;

but I'm not sure that's maintainable -- too obfuscated in my view.

 AFAIK we still require our code to conform to C89 (fortunately not K&R 
anymore) or we could use lots of good stuff, starting from the long long 
type (so much needed for MIPS opcode tables in opcodes/ among others; we 
had a discussion in the context of MIPS segments not so long ago here as 
well, ending with a piece of convoluted code to avoid both the long long 
type and compiler warnings, depending on the configuration chosen), 
through designated initialisers (suddenly you stop losing track of your 
NULLs through your 50-member struct), etc.

 Any comments, anyone?

  Maciej


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]