Sorry for the recent loop-doloop.c breakage.  I did test it, but I didn't take
a day to re-test it the two hundred configurations in config-list.mk and
sift out the pre-broken ports; as i had only changed 'target-independent'
code since the last full test, I only tested in on i686-pc-linux-gnu.
Which unfortunately did not cover the piece of code that was affected
by the merge failure.

I remember at some point we said that we wanted less #ifdef and more if ()
tests, so that we get more uniform syntax / warning coverage when testing
one target.  One big blind spot that's left there are the
HAVE_xxx flags for instruction patterns, like HAVE_doloop_end
or HAVE_nonlocal_goto .  So, three questions:

- Is there consensus that we would like to change this?

- What would a good naming scheme be?
  - Change the semantics of the HAVE_pattern macros for officially named
    patterns so that they are defined as 0 when the pattern is not provided?
    That choice would actually force people to change #ifdef into if (),
    without the possibility of #if, where targets can have non-constant
    pattern predicates.
  - Have_pattern?
  - have_pattern?
  - any other preferences?

- how do we get the list of 'official' named patterns?
  - We could have a header file that is maintained by hand, with a string
    of #ifdef / #define / #endif .
  - Or we could build the list automatically, something like grep for
    @code{..} in md.texi, and check if at least one target defines a
    pattern with that name.
- introduce a special markup for named patterns in md.texi, and grep for that.
  - have some markup in the compiler source files that check the value
  - a special case of the previous option, mixed with a special choice for the
    previous (naming) question: using a naming scheme that can be picked out
    by the generator file, e.g. HAVE_named_pattern_nonlocal_goto_receiver.

Reply via email to