pack fields in line-map data structures
Commit Message
As pointed out by pahole.
Bootstrapped & tested on x86_64-unknown-linux-gnu.
OK?
Thanks,
Richard.
2022-01-18 Richard Biener <rguenther@suse.de>
libcpp/
* include/line-map.h (class line_maps): Re-arrange fields
to minimize padding.
(class rich_location): Likewise.
* line-map.cc (rich_location::rich_location): Adjust.
---
libcpp/include/line-map.h | 14 +++++++-------
libcpp/line-map.cc | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)
Comments
On Tue, Jan 18, 2022 at 01:16:14PM +0100, Richard Biener wrote:
> As pointed out by pahole.
>
> Bootstrapped & tested on x86_64-unknown-linux-gnu.
>
> OK?
>
> Thanks,
> Richard.
>
> 2022-01-18 Richard Biener <rguenther@suse.de>
>
> libcpp/
> * include/line-map.h (class line_maps): Re-arrange fields
> to minimize padding.
> (class rich_location): Likewise.
> * line-map.cc (rich_location::rich_location): Adjust.
Ok, thanks.
Jakub
@@ -792,6 +792,9 @@ public:
/* If true, prints an include trace a la -H. */
bool trace_includes;
+ /* True if we've seen a #line or # 44 "file" directive. */
+ bool seen_line_directive;
+
/* Highest location_t "given out". */
location_t highest_location;
@@ -815,9 +818,6 @@ public:
built-in tokens. */
location_t builtin_location;
- /* True if we've seen a #line or # 44 "file" directive. */
- bool seen_line_directive;
-
/* The default value of range_bits in ordinary line maps. */
unsigned int default_range_bits;
@@ -1816,16 +1816,16 @@ protected:
int m_column_override;
bool m_have_expanded_location;
+ bool m_seen_impossible_fixit;
+ bool m_fixits_cannot_be_auto_applied;
+ bool m_escape_on_output;
+
expanded_location m_expanded_location;
static const int MAX_STATIC_FIXIT_HINTS = 2;
semi_embedded_vec <fixit_hint *, MAX_STATIC_FIXIT_HINTS> m_fixit_hints;
- bool m_seen_impossible_fixit;
- bool m_fixits_cannot_be_auto_applied;
-
const diagnostic_path *m_path;
- bool m_escape_on_output;
};
/* A struct for the result of range_label::get_text: a NUL-terminated buffer
@@ -2083,11 +2083,11 @@ rich_location::rich_location (line_maps *set, location_t loc,
m_ranges (),
m_column_override (0),
m_have_expanded_location (false),
- m_fixit_hints (),
m_seen_impossible_fixit (false),
m_fixits_cannot_be_auto_applied (false),
- m_path (NULL),
- m_escape_on_output (false)
+ m_escape_on_output (false),
+ m_fixit_hints (),
+ m_path (NULL)
{
add_range (loc, SHOW_RANGE_WITH_CARET, label);
}