aboutsummaryrefslogtreecommitdiff
path: root/gdb/utils.c
diff options
context:
space:
mode:
authorWalfred Tedeschi <walfred.tedeschi@intel.com>2017-09-26 18:26:41 +0100
committerPedro Alves <palves@redhat.com>2017-09-26 18:26:41 +0100
commitb32b108aba2c0119d0e231d203d3284539da2379 (patch)
tree9c24604cc4997fcfe86628fb8a701bc8103f9a0f /gdb/utils.c
parent75352e283fb2b265d14c750859156943f6eb2693 (diff)
downloadgdb-b32b108aba2c0119d0e231d203d3284539da2379.zip
gdb-b32b108aba2c0119d0e231d203d3284539da2379.tar.gz
gdb-b32b108aba2c0119d0e231d203d3284539da2379.tar.bz2
Move GDB producer parsing routines to a separate file
gdb/ChangeLog: 2017-09-26 Walfred Tedeschi <walfred.tedeschi@intel.com> * Makefile.in (SFILES): Add producer.c. (COMMON_OBS): Add producer.o * amd64-tdep.c (producer.h): Add new include. * dwarf2read.c (producer.h): Add new include. * producer.c: New file. * producer.h: New file. * utils.c (producer_is_gcc, producer_is_gcc_ge_4): Move to producer.c. * utils.h (producer_is_gcc, producer_is_gcc_ge_4): Move to producer.h.
Diffstat (limited to 'gdb/utils.c')
-rw-r--r--gdb/utils.c54
1 files changed, 0 insertions, 54 deletions
diff --git a/gdb/utils.c b/gdb/utils.c
index 41ad35f..24294be 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2947,60 +2947,6 @@ make_bpstat_clear_actions_cleanup (void)
return make_cleanup (do_bpstat_clear_actions_cleanup, NULL);
}
-/* Check for GCC >= 4.x according to the symtab->producer string. Return minor
- version (x) of 4.x in such case. If it is not GCC or it is GCC older than
- 4.x return -1. If it is GCC 5.x or higher return INT_MAX. */
-
-int
-producer_is_gcc_ge_4 (const char *producer)
-{
- int major, minor;
-
- if (! producer_is_gcc (producer, &major, &minor))
- return -1;
- if (major < 4)
- return -1;
- if (major > 4)
- return INT_MAX;
- return minor;
-}
-
-/* Returns nonzero if the given PRODUCER string is GCC and sets the MAJOR
- and MINOR versions when not NULL. Returns zero if the given PRODUCER
- is NULL or it isn't GCC. */
-
-int
-producer_is_gcc (const char *producer, int *major, int *minor)
-{
- const char *cs;
-
- if (producer != NULL && startswith (producer, "GNU "))
- {
- int maj, min;
-
- if (major == NULL)
- major = &maj;
- if (minor == NULL)
- minor = &min;
-
- /* Skip any identifier after "GNU " - such as "C11" or "C++".
- A full producer string might look like:
- "GNU C 4.7.2"
- "GNU Fortran 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic ..."
- "GNU C++14 5.0.0 20150123 (experimental)"
- */
- cs = &producer[strlen ("GNU ")];
- while (*cs && !isspace (*cs))
- cs++;
- if (*cs && isspace (*cs))
- cs++;
- if (sscanf (cs, "%d.%d", major, minor) == 2)
- return 1;
- }
-
- /* Not recognized as GCC. */
- return 0;
-}
/* Helper for make_cleanup_free_char_ptr_vec. */