diff options
author | Jim Kukunas <james.t.kukunas@linux.intel.com> | 2016-03-07 18:42:39 -0500 |
---|---|---|
committer | Jim Kukunas <james.t.kukunas@linux.intel.com> | 2016-03-07 19:36:41 -0500 |
commit | 63c42f08f70450f4e8f6f95603758f6e9b2d84a7 (patch) | |
tree | 271c07689f44db06765da6e4ed6cb76b836368e5 /output/codeview.c | |
parent | 6224033738437c4d61a54b9142f82728288ecdfb (diff) | |
download | nasm-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.c | 2 |
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", |