http://bugzilla.gnome.org/show_bug.cgi?id=347585

segv in gtk_text_iter_ends_line with gcc 4.1.1 -finline-functions (strict-aliasing)

--- gtk/gtktextiter.c	2006/07/15 16:38:54	1.1
+++ gtk/gtktextiter.c	2006/07/16 01:51:50
@@ -35,8 +35,6 @@
 
 #define FIX_OVERFLOWS(varname) if ((varname) == G_MININT) (varname) = G_MININT + 1
 
-typedef struct _GtkTextRealIter GtkTextRealIter;
-
 struct _GtkTextRealIter
 {
   /* Always-valid information */
@@ -72,6 +70,16 @@ struct _GtkTextRealIter
   gpointer pad2;
 };
 
+/* this needs to go in <glib/gmacros.h>  - bug 335853 */
+#ifndef G_GNUC_MAY_ALIAS
+#  if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+#    define G_GNUC_MAY_ALIAS __attribute__((may_alias))
+#  else
+#    define G_GNUC_MAY_ALIAS
+#  endif
+#endif
+typedef G_GNUC_MAY_ALIAS struct _GtkTextRealIter GtkTextRealIter;
+
 /* These "set" functions should not assume any fields
    other than the char stamp and the tree are valid.
 */
