fix another PIC problem
[libfirm] / ir / be / bestabs.c
index 6b5fe3c..a51fdfd 100644 (file)
@@ -682,7 +682,7 @@ static void stabs_method_begin(dbg_handle *handle, ir_entity *ent, const be_stac
        type_num = get_type_number(h, rtp);
        be_emit_irprintf("\t.stabs\t\"%s:%c%u\",%u,0,0,%s\n",
                get_entity_name(ent),
-               entity_is_externally_visible(ent) ? 'F' : 'f',
+               get_entity_visibility(ent) == ir_visibility_local ? 'f' : 'F',
                type_num,
                N_FUN,
                get_entity_ld_name(ent));
@@ -794,11 +794,7 @@ static void stabs_variable(dbg_handle *handle, ir_entity *ent) {
        unsigned tp_num = get_type_number(h, get_entity_type(ent));
        char buf[1024];
 
-       if (entity_is_externally_visible(ent)) {
-               /* a global variable */
-               snprintf(buf, sizeof(buf), "\t.stabs\t\"%s:G%u\",%d,0,0,0\n",
-                       get_entity_name(ent), tp_num, N_GSYM);
-       } else {
+       if (get_entity_visibility(ent) == ir_visibility_local) {
                /* some kind of local */
                ir_linkage linkage = get_entity_linkage(ent);
                int kind = N_STSYM;
@@ -807,6 +803,10 @@ static void stabs_variable(dbg_handle *handle, ir_entity *ent) {
                        kind = N_ROSYM;
                snprintf(buf, sizeof(buf), "\t.stabs\t\"%s:S%u\",%d,0,0,%s\n",
                        get_entity_name(ent), tp_num, kind, get_entity_ld_name(ent));
+       } else {
+               /* a global variable */
+               snprintf(buf, sizeof(buf), "\t.stabs\t\"%s:G%u\",%d,0,0,0\n",
+                       get_entity_name(ent), tp_num, N_GSYM);
        }
        buf[sizeof(buf) - 1] = '\0';