Merge branch 'wip/kalev/gcc-11' into 'master'

Avoid diagnostics for gcc-11 false positive out of bounds accesses

See merge request GNOME/gtk!3064

(cherry picked from commit 5044031b53988627c2937c6b5f8919a37e18f21f)

c514c41d Avoid diagnostics for gcc-11 false positive out of bounds accesses
This commit is contained in:
Matthias Clasen
2021-01-11 22:04:52 +00:00
committed by Emmanuele Bassi
parent 4868656ebb
commit b4e110920a
2 changed files with 21 additions and 0 deletions

View File

@ -426,6 +426,12 @@ char_segment_check_func (GtkTextLineSegment *segPtr, GtkTextLine *line)
GtkTextLineSegment*
_gtk_toggle_segment_new (GtkTextTagInfo *info, gboolean on)
{
/* gcc-11 issues a diagnostic here because the size allocated
for SEG does not cover the entire size of a GtkTextLineSegment
and gcc has no way to know that the union will only be used
for limited types and the additional space is not needed. */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Warray-bounds"
GtkTextLineSegment *seg;
seg = g_slice_alloc (TSEG_SIZE);
@ -441,6 +447,7 @@ _gtk_toggle_segment_new (GtkTextTagInfo *info, gboolean on)
seg->body.toggle.inNodeCounts = 0;
return seg;
#pragma GCC diagnostic pop
}
void