summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx18
1 files changed, 10 insertions, 8 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index a51efad7..780f4c4f 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -581,15 +581,17 @@ dwflpp
assert(memstream);
bool deref = c_emit_location (memstream, head, 1);
+ fprintf(memstream, " goto out;\n");
- fprintf(memstream, "goto out;\n");
- if (deref)
- {
- fprintf(memstream,
- "deref_fault:\n"
- " c->errorcount++; \n"
- " goto out;\n\n");
- }
+ // dummy use of deref_fault label, to disable warning if deref() not used
+ fprintf(memstream, "if (0) goto deref_fault;\n");
+
+ // XXX: deref flag not reliable; emit fault label unconditionally
+ if (deref) ;
+ fprintf(memstream,
+ "deref_fault:\n"
+ " c->errorcount++; \n"
+ " goto out;\n");
fclose (memstream);
string result(buf);