Change producer_is_gcc function return type to bool.
gdb/ChangeLog: * utils.h (producer_is_gcc): Change return type to bool. Add major argument. * utils.c (producer_is_gcc): Likewise. (producer_is_gcc_ge_4): Adjust producer_is_gcc call. * dwarf2read.c (check_producer): Likewise.
This commit is contained in:
parent
01b088bc51
commit
b1ffba5a7f
4 changed files with 29 additions and 10 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2015-02-04 Mark Wielaard <mjw@redhat.com>
|
||||||
|
|
||||||
|
* utils.h (producer_is_gcc): Change return type to bool. Add major
|
||||||
|
argument.
|
||||||
|
* utils.c (producer_is_gcc): Likewise.
|
||||||
|
(producer_is_gcc_ge_4): Adjust producer_is_gcc call.
|
||||||
|
* dwarf2read.c (check_producer): Likewise.
|
||||||
|
|
||||||
2015-02-10 Pedro Alves <palves@redhat.com>
|
2015-02-10 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* infrun.c (displaced_step_fixup): Switch to the event thread
|
* infrun.c (displaced_step_fixup): Switch to the event thread
|
||||||
|
|
|
@ -12293,7 +12293,7 @@ check_producer (struct dwarf2_cu *cu)
|
||||||
combination. gcc-4.5.x -gdwarf-4 binaries have DW_AT_accessibility
|
combination. gcc-4.5.x -gdwarf-4 binaries have DW_AT_accessibility
|
||||||
interpreted incorrectly by GDB now - GCC PR debug/48229. */
|
interpreted incorrectly by GDB now - GCC PR debug/48229. */
|
||||||
}
|
}
|
||||||
else if ((major = producer_is_gcc (cu->producer, &minor)) > 0)
|
else if (producer_is_gcc (cu->producer, &major, &minor))
|
||||||
{
|
{
|
||||||
cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6);
|
cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6);
|
||||||
cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3);
|
cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3);
|
||||||
|
|
25
gdb/utils.c
25
gdb/utils.c
|
@ -3259,7 +3259,9 @@ int
|
||||||
producer_is_gcc_ge_4 (const char *producer)
|
producer_is_gcc_ge_4 (const char *producer)
|
||||||
{
|
{
|
||||||
int major, minor;
|
int major, minor;
|
||||||
major = producer_is_gcc (producer, &minor);
|
|
||||||
|
if (! producer_is_gcc (producer, &major, &minor))
|
||||||
|
return -1;
|
||||||
if (major < 4)
|
if (major < 4)
|
||||||
return -1;
|
return -1;
|
||||||
if (major > 4)
|
if (major > 4)
|
||||||
|
@ -3267,17 +3269,24 @@ producer_is_gcc_ge_4 (const char *producer)
|
||||||
return minor;
|
return minor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the major version number if the given PRODUCER string is GCC and
|
/* Returns true if the given PRODUCER string is GCC and sets the MAJOR
|
||||||
sets the MINOR version. Returns -1 if the given PRODUCER is NULL or it
|
and MINOR versions when not NULL. Returns false if the given PRODUCER
|
||||||
isn't GCC. */
|
is NULL or it isn't GCC. */
|
||||||
int
|
|
||||||
producer_is_gcc (const char *producer, int *minor)
|
bool
|
||||||
|
producer_is_gcc (const char *producer, int *major, int *minor)
|
||||||
{
|
{
|
||||||
const char *cs;
|
const char *cs;
|
||||||
int major;
|
|
||||||
|
|
||||||
if (producer != NULL && strncmp (producer, "GNU ", strlen ("GNU ")) == 0)
|
if (producer != NULL && strncmp (producer, "GNU ", strlen ("GNU ")) == 0)
|
||||||
{
|
{
|
||||||
|
int maj, min;
|
||||||
|
|
||||||
|
if (major == NULL)
|
||||||
|
major = &maj;
|
||||||
|
if (minor == NULL)
|
||||||
|
minor = &min;
|
||||||
|
|
||||||
/* Skip any identifier after "GNU " - such as "C11" "C++" or "Java".
|
/* Skip any identifier after "GNU " - such as "C11" "C++" or "Java".
|
||||||
A full producer string might look like:
|
A full producer string might look like:
|
||||||
"GNU C 4.7.2"
|
"GNU C 4.7.2"
|
||||||
|
@ -3289,7 +3298,7 @@ producer_is_gcc (const char *producer, int *minor)
|
||||||
cs++;
|
cs++;
|
||||||
if (*cs && isspace (*cs))
|
if (*cs && isspace (*cs))
|
||||||
cs++;
|
cs++;
|
||||||
if (sscanf (cs, "%d.%d", &major, minor) == 2)
|
if (sscanf (cs, "%d.%d", major, minor) == 2)
|
||||||
return major;
|
return major;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#ifndef UTILS_H
|
#ifndef UTILS_H
|
||||||
#define UTILS_H
|
#define UTILS_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "exceptions.h"
|
#include "exceptions.h"
|
||||||
|
|
||||||
extern void initialize_utils (void);
|
extern void initialize_utils (void);
|
||||||
|
@ -302,7 +304,7 @@ extern pid_t wait_to_die_with_timeout (pid_t pid, int *status, int timeout);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int producer_is_gcc_ge_4 (const char *producer);
|
extern int producer_is_gcc_ge_4 (const char *producer);
|
||||||
extern int producer_is_gcc (const char *producer, int *minor);
|
extern bool producer_is_gcc (const char *producer, int *major, int *minor);
|
||||||
|
|
||||||
extern int myread (int, char *, int);
|
extern int myread (int, char *, int);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue