[gnome-commander: 1/4] ARM/MIPS/etc: Fix for -Wcast-align



commit e0da34e80d461b29f67d90acf4ff27d8b703f937
Author: Mamoru TASAKA <mtasaka fedoraproject org>
Date:   Tue May 2 21:13:29 2017 +0900

    ARM/MIPS/etc: Fix for -Wcast-align
    
    e.g.
    libgcmd/libgcmd-widget-factory.cc: In function 'GtkWidget* create_spin(GtkWidget*, const gchar*, gint, 
gint, gint)':
    /usr/include/glib-2.0/gobject/gtype.h:2212:63: error: cast from 'GTypeInstance* {aka _GTypeInstance*}' to 
'GtkAdjustment* {aka _GtkAdjustment*}' increases required alignment of target type [-Werror=cast-align]
         ((ct*) g_type_check_instance_cast ((GTypeInstance*) ip, gt))
                                                                   ^
    /usr/include/glib-2.0/gobject/gtype.h:482:66: note: in expansion of macro '_G_TYPE_CIC'
     #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), 
c_type))
                                                                      ^~~~~~~~~~~
    /usr/include/gtk-2.0/gtk/gtkadjustment.h:41:47: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
     #define GTK_ADJUSTMENT(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ADJUSTMENT, 
GtkAdjustment))
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
    libgcmd/libgcmd-widget-factory.cc:303:44: note: in expansion of macro 'GTK_ADJUSTMENT'
         GtkWidget *spin = gtk_spin_button_new (GTK_ADJUSTMENT (adj), 1, 0);
    
    Here adj is once casted into GTypeInstance* on GLib internal, then again is casted
    into GtkAdjustment* on GLib internal, which may require more strict alignment than
    GTypeInstance* on arm or MIPS or so.
    
    We cannot touch GLib internals. Let's ignore these warnings with GCC pragma.
    Resolves https://github.com/gcmd/gnome-commander/issues/21 .

 libgcmd/libgcmd-widget-factory.cc            | 21 +++++++++++++++++++++
 src/dialogs/gnome-cmd-options-dialog.cc      | 14 ++++++++++++++
 src/eggcellrendererkeys.cc                   | 28 ++++++++++++++++++++++++++++
 src/gnome-cmd-advrename-profile-component.cc | 21 +++++++++++++++++++++
 src/gnome-cmd-clist.cc                       | 14 ++++++++++++++
 src/intviewer/search-progress-dlg.cc         | 21 +++++++++++++++++++++
 6 files changed, 119 insertions(+)
---
diff --git a/libgcmd/libgcmd-widget-factory.cc b/libgcmd/libgcmd-widget-factory.cc
index df22378e..4797892e 100644
--- a/libgcmd/libgcmd-widget-factory.cc
+++ b/libgcmd/libgcmd-widget-factory.cc
@@ -300,11 +300,25 @@ GtkWidget *create_radio_with_mnemonic (GtkWidget *parent, GSList *group, gchar *
 GtkWidget *create_spin (GtkWidget *parent, const gchar *name, gint min, gint max, gint value)
 {
     GtkObject *adj = gtk_adjustment_new (value, min, max, 1, 10, 0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     GtkWidget *spin = gtk_spin_button_new (GTK_ADJUSTMENT (adj), 1, 0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     g_object_ref (spin);
     g_object_set_data_full (G_OBJECT (parent), name, spin, g_object_unref);
     gtk_widget_show (spin);
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin), TRUE);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     return spin;
 }
@@ -334,7 +348,14 @@ GtkWidget *create_icon_entry (GtkWidget *parent, const gchar *name, const gchar
 
 GtkWidget *create_scale (GtkWidget *parent, const gchar *name, gint value, gint min, gint max)
 {
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     GtkWidget *scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (value, min, max, 0, 0, 0)));
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     g_object_ref (scale);
     g_object_set_data_full (G_OBJECT (parent), name, scale, g_object_unref);
diff --git a/src/dialogs/gnome-cmd-options-dialog.cc b/src/dialogs/gnome-cmd-options-dialog.cc
index 7613bdbe..eb2e1bcc 100644
--- a/src/dialogs/gnome-cmd-options-dialog.cc
+++ b/src/dialogs/gnome-cmd-options-dialog.cc
@@ -855,12 +855,26 @@ inline void store_layout_options (GtkWidget *dialog, GnomeCmdData::Options &cfg)
     cfg.set_list_font (list_font);
 
     cfg.set_theme_icon_dir (gtk_entry_get_text (GTK_ENTRY (theme_icondir_entry)));
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     cfg.icon_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (iconsize_spin));
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (iconquality_scale));
     cfg.icon_scale_quality = (GdkInterpType) adj->value;
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     cfg.list_row_height = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (row_height_spin));
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 }
 
 
diff --git a/src/eggcellrendererkeys.cc b/src/eggcellrendererkeys.cc
index 3c4a84a4..08541c88 100644
--- a/src/eggcellrendererkeys.cc
+++ b/src/eggcellrendererkeys.cc
@@ -349,7 +349,14 @@ static void egg_cell_renderer_keys_get_property  (GObject *object, guint param_i
 {
     g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (object));
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     EggCellRendererKeys *keys = EGG_CELL_RENDERER_KEYS (object);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     switch (param_id)
     {
@@ -376,7 +383,14 @@ static void egg_cell_renderer_keys_set_property (GObject *object, guint param_id
 {
     g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (object));
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     EggCellRendererKeys *keys = EGG_CELL_RENDERER_KEYS (object);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     switch (param_id)
     {
@@ -428,7 +442,14 @@ void egg_cell_renderer_keys_get_size (GtkCellRenderer *cell,
                                       gint            *width,
                                       gint            *height)
 {
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     EggCellRendererKeys *keys = (EggCellRendererKeys *) cell;
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     GtkRequisition requisition;
 
     if (keys->sizing_label == NULL)
@@ -615,8 +636,15 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer      *cell,
     GtkWidget *label;
     GtkWidget *eventbox;
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     GtkCellRendererText *celltext = GTK_CELL_RENDERER_TEXT (cell);
     EggCellRendererKeys *keys = EGG_CELL_RENDERER_KEYS (cell);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     // If the cell isn't editable we return NULL
     if (celltext->editable == FALSE)
diff --git a/src/gnome-cmd-advrename-profile-component.cc b/src/gnome-cmd-advrename-profile-component.cc
index 4f67b031..b1f8cffa 100644
--- a/src/gnome-cmd-advrename-profile-component.cc
+++ b/src/gnome-cmd-advrename-profile-component.cc
@@ -709,14 +709,28 @@ void GnomeCmdAdvrenameProfileComponent::Private::on_template_entry_changed(GtkEn
 
 void GnomeCmdAdvrenameProfileComponent::Private::on_counter_start_spin_value_changed (GtkWidget *spin, 
GnomeCmdAdvrenameProfileComponent *component)
 {
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     component->profile.counter_start = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     g_signal_emit (component, signals[COUNTER_CHANGED], 0);
 }
 
 
 void GnomeCmdAdvrenameProfileComponent::Private::on_counter_step_spin_value_changed (GtkWidget *spin, 
GnomeCmdAdvrenameProfileComponent *component)
 {
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     component->profile.counter_step = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     g_signal_emit (component, signals[COUNTER_CHANGED], 0);
 }
 
@@ -1271,8 +1285,15 @@ void GnomeCmdAdvrenameProfileComponent::update()
     gtk_editable_set_position (GTK_EDITABLE (priv->template_entry), -1);
     gtk_editable_select_region (GTK_EDITABLE (priv->template_entry), -1, -1);
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_start_spin), profile.counter_start);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_step_spin), profile.counter_step);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     gtk_combo_box_set_active (GTK_COMBO_BOX (priv->counter_digits_combo), profile.counter_width);
 
     if (!model_is_empty(priv->regex_model))
diff --git a/src/gnome-cmd-clist.cc b/src/gnome-cmd-clist.cc
index 81af6959..1b1da152 100644
--- a/src/gnome-cmd-clist.cc
+++ b/src/gnome-cmd-clist.cc
@@ -605,7 +605,14 @@ gint gnome_cmd_clist_get_voffset (GnomeCmdCList *clist)
 {
     g_return_val_if_fail (GNOME_CMD_IS_CLIST (clist), 0);
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     return GTK_ADJUSTMENT(GTK_CLIST(clist)->vadjustment)->value;
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 }
 
 
@@ -619,7 +626,14 @@ void gnome_cmd_clist_set_voffset (GnomeCmdCList *clist, gint voffset)
 {
     g_return_if_fail (GNOME_CMD_IS_CLIST (clist));
 
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_adjustment_set_value (GTK_ADJUSTMENT (GTK_CLIST (clist)->vadjustment), voffset);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 }
 
 
diff --git a/src/intviewer/search-progress-dlg.cc b/src/intviewer/search-progress-dlg.cc
index 47fee384..794c78c4 100644
--- a/src/intviewer/search-progress-dlg.cc
+++ b/src/intviewer/search-progress-dlg.cc
@@ -85,8 +85,15 @@ static void search_progress_dlg_init (GViewerSearchProgressDlg *sdlg)
 
     // Progress Bar
     sdlg->priv->progressbar = gtk_progress_bar_new();
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_progress_bar_set_text(GTK_PROGRESS_BAR (sdlg->priv->progressbar), "0.0");
     gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (sdlg->priv->progressbar), 0.0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     gtk_box_pack_start(GTK_BOX(dlg->vbox), sdlg->priv->progressbar, TRUE, TRUE, 0);
 
@@ -155,8 +162,15 @@ static gboolean search_progress_dlg_timeout(gpointer data)
     progress = g_atomic_int_get (w->priv->progress_value);
 
     g_snprintf(text, sizeof(text), "%3.1f%%", progress/10.0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_progress_bar_set_text(GTK_PROGRESS_BAR (w->priv->progressbar), text);
     gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (w->priv->progressbar), progress/1000.0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     if (g_atomic_int_get (w->priv->completed_indicator)!=0)
     {
@@ -193,8 +207,15 @@ void gviewer_show_search_progress_dlg(GtkWindow *parent, const gchar *searching_
 
     dprogress = g_atomic_int_get (dlg->priv->progress_value);
     g_snprintf(text, sizeof(text), "%3.1f%%", dprogress/10.0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+#endif
     gtk_progress_bar_set_text(GTK_PROGRESS_BAR (dlg->priv->progressbar), text);
     gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (dlg->priv->progressbar), dprogress/1000.0);
+#if defined (__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
     gtk_dialog_run(GTK_DIALOG(dlg));
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]