Fix GDBHISTSIZE test failure on i686
authorPatrick Palka <patrick@parcs.ath.cx>
Tue, 23 Jun 2015 14:01:38 +0000 (10:01 -0400)
committerPatrick Palka <patrick@parcs.ath.cx>
Tue, 23 Jun 2015 20:32:36 +0000 (16:32 -0400)
commit0fc26cafacfff9f53d898bb73495b384b80d6d31
treef4185135344cfd1601ae3a57e9136b909464eb6d
parente750549018d67d545bdaf90cc058f97b954600cc
Fix GDBHISTSIZE test failure on i686

The test

  test_histsize_history_setting "99999999999999999999999999999999999" "unlimited"

was failing on i686 because the condition in init_history() for
determining whether to map a large GDBHISTSIZE value to infinity was

  long var = strtol (tmpenv);
  if (var > INT_MAX)
    history_size = unlimited;

but this condition is never true on i686 because INT_MAX == LONG_MAX.
So in order to properly map large out-of-range values of GDBHISTSIZE to
infinity on targets where LONG_MAX > INT_MAX as well as on i686, we have
to instead change the above condition to

  if (var > INT_MAX
      || (var == INT_MAX && errno == ERANGE))
    history_size = unlimited;

gdb/ChangeLog:

* top.c (init_history): Look at errno after calling strtol to
properly map large GDBHISTSIZE values to infinity.
gdb/ChangeLog
gdb/top.c