Hi,

I believe I have found a edge case which causes GCC to emit a warning from the vala compiled code. Specifically it involves the switch statement when comparing constant strings.

It would appear the solution is just adding a simple cast to _tmp0 = type_table_name to _tmp0 = (char *)type_table_name .

Just a small detail!

Thanks for the great project!

- Dan Saul

GCC Warning:

SidebarList.c:514: warning: assignment discards qualifiers from pointer target type

Original Vala source:

private void setup_load_sidebar_database_specified(int64 id, int64 type_id, int64 type_table_id,string type_table_name)
        {
                switch (type_table_name)
                {
                        case "folders":
                        {
setup_load_sidebar_database_specified_folder (id,type_id,type_table_id,type_table_name);
                                break;
                        }
                        case "separators":
                        {
setup_load_sidebar_database_specified_separator (id,type_id,type_table_id,type_table_name);
                                break;
                        }
                        default:
                        {
stdout.printf("unhandled type type_table_name '%s'\n",type_table_name);
                                stdout.flush();
                                break;
                        }
                }
        }

Expanded C Source:

static void file_browser_sidebar_list_setup_load_sidebar_database_specified (FileBrowserSidebarList* self, gint64 id, gint64 type_id, gint64 type_table_id, const char* type_table_name) {
        GQuark _tmp1;
        char* _tmp0;
        g_return_if_fail (self != NULL);
        g_return_if_fail (type_table_name != NULL);
        _tmp0 = NULL;
        static GQuark _tmp1_label0 = 0;
        static GQuark _tmp1_label1 = 0;
        _tmp0 = type_table_name; # Line 514
        _tmp1 = (NULL == _tmp0 ? 0 : g_quark_from_string (_tmp0));
if (_tmp1 == (0 != _tmp1_label0 ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("folders"))))
        do {
                {
file_browser_sidebar_list_setup_load_sidebar_database_specified_folder (self, id, type_id, type_table_id, type_table_name);
                        break;
                }
} while (0); else if (_tmp1 == (0 != _tmp1_label1 ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("separators"))))
        do {
                {
file_browser_sidebar_list_setup_load_sidebar_database_specified_separator (self, id, type_id, type_table_id, type_table_name);
                        break;
                }
        } while (0); else
        do {
                {
fprintf (stdout, "unhandled type type_table_name '%s'\n", type_table_name);
                        fflush (stdout);
                        break;
                }
        } while (0);
}
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to