summaryrefslogtreecommitdiff
path: root/output/codeview.c
diff options
context:
space:
mode:
authorJim Kukunas <james.t.kukunas@linux.intel.com>2016-03-07 18:42:39 -0500
committerJim Kukunas <james.t.kukunas@linux.intel.com>2016-03-07 19:36:41 -0500
commit63c42f08f70450f4e8f6f95603758f6e9b2d84a7 (patch)
tree271c07689f44db06765da6e4ed6cb76b836368e5 /output/codeview.c
parent6224033738437c4d61a54b9142f82728288ecdfb (diff)
downloadnasm-63c42f08f70450f4e8f6f95603758f6e9b2d84a7.tar.gz
codeview: Don't treat labels starting with .. as local labels
For local labels, starting with '.', the label name is concatenated with the previous non-local label to produce a label that can be accessed from elsewhere. This is the name we want to generate debug info for. Labels starting with ".." are special and shouldn't be concatenated. Fix Bugzilla #3392342 Signed-off-by: Jim Kukunas <james.t.kukunas@linux.intel.com>
Diffstat (limited to 'output/codeview.c')
-rw-r--r--output/codeview.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/output/codeview.c b/output/codeview.c
index 7fc5619e..8492fdd3 100644
--- a/output/codeview.c
+++ b/output/codeview.c
@@ -215,7 +215,7 @@ static void cv8_deflabel(char *name, int32_t segment, int64_t offset,
sym->typeindex = 0;
/* handle local labels */
- if (name[0] == '.' && cv8_state.last_sym != NULL) {
+ if (name[0] == '.' && name[1] != '.' && cv8_state.last_sym != NULL) {
len = strlen(cv8_state.last_sym->name) + strlen(name);
sym->name = nasm_malloc(len + 1);
ret = snprintf(sym->name, len + 1, "%s%s",