diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2023-09-04 18:16:54 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-04 18:16:54 -0400 |
| commit | d9c5096e929ef28a59ac4064c4daef734e1d17c0 (patch) | |
| tree | b228c110eb5a406c971eece7c0707ab365521c15 /tools/gcc-plugins/frr-format.c | |
| parent | ff542b22d219107bede01c74b426ddda87c7a31d (diff) | |
| parent | 2821d3b91b5145a848eee00d7134c12b45be10f6 (diff) | |
Merge pull request #14346 from opensourcerouting/frr-format-gcc-13
tools/gcc-plugins: fix for GCC 13
Diffstat (limited to 'tools/gcc-plugins/frr-format.c')
| -rw-r--r-- | tools/gcc-plugins/frr-format.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tools/gcc-plugins/frr-format.c b/tools/gcc-plugins/frr-format.c index 2240a171b4..a5418e5357 100644 --- a/tools/gcc-plugins/frr-format.c +++ b/tools/gcc-plugins/frr-format.c @@ -3464,7 +3464,7 @@ class frr_range_label_for_type_mismatch : public range_label { } - label_text get_text (unsigned range_idx) const OVERRIDE; + label_text get_text (unsigned range_idx) const override; protected: tree m_labelled_type; @@ -3564,19 +3564,26 @@ class range_label_for_format_type_mismatch { } - label_text get_text (unsigned range_idx) const FINAL OVERRIDE +#if BUILDING_GCC_VERSION >= 13000 +#define text_get(text) text.get() +#define text_return(text, result) return label_text::take(result) +#else +#define text_get(text) text.m_buffer +#define text_return(text, result) text.maybe_free(); return label_take(result) +#endif + + label_text get_text (unsigned range_idx) const final override { label_text text = range_label_for_type_mismatch::get_text (range_idx); - if (text.m_buffer == NULL) + if (text_get(text) == NULL) return text; indirection_suffix suffix (m_pointer_count); char *p = (char *) alloca (suffix.get_buffer_size ()); suffix.fill_buffer (p); - char *result = concat (text.m_buffer, p, NULL); - text.maybe_free (); - return label_take(result); + char *result = concat (text_get(text), p, NULL); + text_return(text, result); } private: |
