Repository: compiler-explorer/compiler-explorer
Pull request #7315 (2025-01-28 09:08:24)

Unset context.prevLabel when a label gets filtered
Otherwise subsequent unused label's directives end up being included in the processed asm even though the label itself got filtered


partouf: Do you have an example where you can show the new situation is better than before?

From the unittest diff's I'm not entirely convinced this will not cause some complaints (whether its correct or not, I don't know)

Waqar144: The example case is https://compiler-explorer.com/z/hG3qchTfe

The last 3 lines are irrelevant to the context.
```
        .asciz  "is_integer_negative: Unknown integer size"

        .asciz  "/opt/compiler-explorer/odin-dev-2025-01/core/strconv/integers.odin"

        .asciz  "is_integer_negative"
```

With this patch, these will get filtered correctly.
Waqar144: The modified test cases were not filtering some unused labels, thus the code removal.

Patch:
diff --git a/app.ts b/app.ts
index 73aea33ab..b0fd6a3e3 100755
--- a/app.ts
+++ b/app.ts
@@ -546,7 +546,7 @@ async function main() {
     const compileHandler = new CompileHandler(compilationEnvironment, awsProps);
     const storageType = getStorageTypeByKey(storageSolution);
     const storageHandler = new storageType(httpRoot, compilerProps, awsProps);
-    const compilerFinder = new CompilerFinder(compileHandler, compilerProps, awsProps, defArgs, clientOptionsHandler);
+    const compilerFinder = new CompilerFinder(compileHandler, compilerProps, defArgs, clientOptionsHandler);
 
     const isExecutionWorker = ceProps<boolean>('execqueue.is_worker', false);
     const healthCheckFilePath = ceProps('healthCheckFilePath', null) as string | null;
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 04b87b157..dfe116499 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -2705,6 +2705,7 @@ group.msp.groupName=MSP GCC
 group.msp.baseName=MSP430 gcc
 group.msp.isSemVer=true
 group.msp.supportsBinary=false
+group.msp.compilerType=msp430
 
 compiler.msp430g453.exe=/opt/compiler-explorer/msp430/gcc-4.5.3/bin/msp430-g++
 compiler.msp430g453.alias=/usr/bin/msp430-g++
@@ -5809,9 +5810,9 @@ libs.jwt-cpp.versions.052.path=/opt/compiler-explorer/libs/jwt-cpp/v0.5.2/includ
 
 libs.xieite.name=XIEITE
 libs.xieite.url=https://xieite.github.io
-libs.xieite.versions=header
-libs.xieite.versions.header.version=header-only
-libs.xieite.versions.header.path=/opt/compiler-explorer/libs/xieite/header/include
+libs.xieite.versions=main
+libs.xieite.versions.main.version=main
+libs.xieite.versions.main.path=/opt/compiler-explorer/libs/xieite/main/include
 
 libs.option.name=option
 libs.option.description=Replacement for std::optional with efficient memory usage and additional features
diff --git a/lib/compiler-finder.ts b/lib/compiler-finder.ts
index 67d296250..e62685b3b 100644
--- a/lib/compiler-finder.ts
+++ b/lib/compiler-finder.ts
@@ -39,7 +39,6 @@ import type {Language, LanguageKey} from '../types/languages.interfaces.js';
 import {Tool, ToolInfo} from '../types/tool.interfaces.js';
 
 import {assert, unwrap, unwrapString} from './assert.js';
-import {InstanceFetcher} from './aws.js';
 import {CompileHandler} from './handlers/compile.js';
 import {logger} from './logger.js';
 import {ClientOptionsHandler} from './options-handler.js';
@@ -55,36 +54,25 @@ const sleep = promisify(setTimeout);
 export class CompilerFinder {
     compilerProps: CompilerProps['get'];
     ceProps: PropertyGetter;
-    awsProps: PropertyGetter;
     args: AppDefaultArguments;
     compileHandler: CompileHandler;
     languages: Record<string, Language>;
-    awsPoller: InstanceFetcher | null = null;
     optionsHandler: ClientOptionsHandler;
-    //visitedCompilers = new Set<string>();
 
     constructor(
         compileHandler: CompileHandler,
         compilerProps: CompilerProps,
-        awsProps: PropertyGetter,
         args: AppDefaultArguments,
         optionsHandler: ClientOptionsHandler,
     ) {
         this.compilerProps = compilerProps.get.bind(compilerProps);
         this.ceProps = compilerProps.ceProps;
-        this.awsProps = awsProps;
         this.args = args;
         this.compileHandler = compileHandler;
         this.languages = compilerProps.languages;
-        this.awsPoller = null;
         this.optionsHandler = optionsHandler;
     }
 
-    awsInstances() {
-        if (!this.awsPoller) this.awsPoller = new InstanceFetcher(this.awsProps);
-        return this.awsPoller.getInstances();
-    }
-
     static prepareRemoteUrlParts(host: string, port: number, uriBase: string, langId: string | null) {
         const uriSchema = port === 443 ? 'https' : 'http';
         return {
@@ -159,12 +147,6 @@ export class CompilerFinder {
                                 res.on('end', () => {
                                     try {
                                         const compilers = (JSON.parse(str) as CompilerInfo[]).map(compiler => {
-                                            // Fix up old upstream implementations of Compiler Explorer
-                                            // e.g. https://www.godbolt.ms
-                                            // (see https://github.com/compiler-explorer/compiler-explorer/issues/1768)
-                                            if (!compiler.alias) compiler.alias = [];
-                                            if (typeof compiler.alias == 'string') compiler.alias = [compiler.alias];
-                                            // End fixup
                                             compiler.exe = '/dev/null';
                                             compiler.remote = CompilerFinder.getRemoteInfo(
                                                 uriSchema,
@@ -185,7 +167,7 @@ export class CompilerFinder {
                         )
                         .on('error', reject)
                         .on('timeout', () => reject('timeout'));
-                    request.setTimeout(this.awsProps('proxyTimeout', 1000));
+                    request.setTimeout(this.ceProps('proxyTimeout', 1000));
                 });
             },
             `${host}:${port}`,
@@ -197,22 +179,6 @@ export class CompilerFinder {
         });
     }
 
-    async fetchAws() {
-        logger.info('Fetching instances from AWS');
-        const instances = await this.awsInstances();
-        const mapped = await Promise.all(
-            instances.map(instance => {
-                logger.info('Checking instance ' + instance.InstanceId);
-                const address = this.awsProps('externalTestMode', false)
-                    ? instance.PublicDnsName
-                    : instance.PrivateDnsName;
-                return this.fetchRemote(unwrap(address), this.args.port, '', this.awsProps, null);
-            }),
-        );
-
-        return remove(mapped.flat(), null);
-    }
-
     async compilerConfigFor(
         langId: string,
         compilerId: string,
@@ -425,7 +391,6 @@ export class CompilerFinder {
             );
             return allCompilers.flat();
         }
-        if (compilerName === 'AWS') return this.fetchAws();
         const configs = [await this.compilerConfigFor(langId, compilerName, parentProps)];
         return remove(configs, null);
     }
diff --git a/lib/compilers/_all.ts b/lib/compilers/_all.ts
index 75f445722..24d8953a8 100644
--- a/lib/compilers/_all.ts
+++ b/lib/compilers/_all.ts
@@ -28,31 +28,30 @@ export {AssemblyCompiler} from './assembly.js';
 export {AvrGcc6502Compiler} from './avrgcc6502.js';
 export {BeebAsmCompiler} from './beebasm.js';
 export {C3Compiler} from './c3c.js';
+export {CIRCTCompiler} from './circt.js';
+export {CL430Compiler} from './cl430.js';
+export {CLSPVCompiler} from './clspv.js';
+export {CMakeScriptCompiler} from './cmakescript.js';
 export {CarbonCompiler} from './carbon.js';
-export {CerberusCompiler} from './cerberus.js';
 export {Cc65Compiler} from './cc65.js';
+export {CerberusCompiler} from './cerberus.js';
 export {CircleCompiler} from './circle.js';
-export {CIRCTCompiler} from './circt.js';
-export {CL430Compiler} from './cl430.js';
-export {ClangCompiler} from './clang.js';
 export {ClangCLCompiler} from './clangcl.js';
+export {ClangCompiler} from './clang.js';
 export {ClangCudaCompiler} from './clang.js';
+export {ClangDxcCompiler} from './clang.js';
+export {ClangHexagonCompiler} from './clang.js';
 export {ClangHipCompiler} from './clang.js';
 export {ClangIntelCompiler} from './clang.js';
-export {ClangHexagonCompiler} from './clang.js';
-export {ClangDxcCompiler} from './clang.js';
 export {CleanCompiler} from './clean.js';
-export {CMakeScriptCompiler} from './cmakescript.js';
 export {CompCertCompiler} from './compcert.js';
 export {CppFrontCompiler} from './cppfront.js';
 export {CprocCompiler} from './cproc.js';
-export {CLSPVCompiler} from './clspv.js';
 export {CrystalCompiler} from './crystal.js';
 export {D8Compiler} from './d8.js';
+export {DMDCompiler} from './dmd.js';
 export {DartCompiler} from './dart.js';
 export {DefaultCompiler} from './default.js';
-export {Dex2OatCompiler} from './dex2oat.js';
-export {DMDCompiler} from './dmd.js';
 export {
     DotNetCoreClrCompiler,
     DotNetCrossgen2Compiler,
@@ -62,29 +61,30 @@ export {
     DotNetMonoCompiler,
     DotNetNativeAotCompiler,
 } from './dotnet.js';
+export {Dex2OatCompiler} from './dex2oat.js';
 export {EDGCompiler} from './edg.js';
+export {EWARMCompiler} from './ewarm.js';
+export {EWAVRCompiler} from './ewavr.js';
 export {ElixirAsmCompiler} from './elixirasm.js';
 export {ElixirCompiler} from './elixir.js';
 export {EllccCompiler} from './ellcc.js';
 export {ErlangAsmCompiler} from './erlangasm.js';
 export {ErlangCompiler} from './erlang.js';
-export {EWARMCompiler} from './ewarm.js';
-export {EWAVRCompiler} from './ewavr.js';
+export {FPCCompiler} from './pascal.js';
 export {FakeCompiler} from './fake-for-test.js';
 export {FlangCompiler} from './flang.js';
 export {FlangFC1Compiler} from './flang-fc1.js';
-export {LFortranCompiler} from './lfortran.js';
 export {FortranCompiler} from './fortran.js';
-export {FPCCompiler} from './pascal.js';
+export {GCCCobolCompiler} from './gcccobol.js';
 export {GCCCompiler} from './gcc.js';
-export {GCCRSCompiler} from './gccrs.js';
 export {GCCGimpleCompiler} from './gimple.js';
-export {GCCCobolCompiler} from './gcccobol.js';
+export {GCCRSCompiler} from './gccrs.js';
 export {GLSLCompiler} from './glsl.js';
+export {GM2Compiler} from './gm2.js';
 export {GnuCobolCompiler} from './gnucobol.js';
 export {GolangCompiler} from './golang.js';
-export {HaskellCompiler} from './haskell.js';
 export {HLSLCompiler} from './hlsl.js';
+export {HaskellCompiler} from './haskell.js';
 export {HookCompiler} from './hook.js';
 export {HyloCompiler} from './hylo.js';
 export {ISPCCompiler} from './ispc.js';
@@ -93,68 +93,69 @@ export {JavaCompiler} from './java.js';
 export {JuliaCompiler} from './julia.js';
 export {KotlinCompiler} from './kotlin.js';
 export {LDCCompiler} from './ldc.js';
+export {LFortranCompiler} from './lfortran.js';
 export {LLCCompiler} from './llc.js';
-export {YLCCompiler} from './ylc.js';
-export {LLVMmcaTool} from './llvm-mca.js';
 export {LLVMMOSCompiler} from './llvm-mos.js';
+export {LLVMmcaTool} from './llvm-mca.js';
+export {MLIRCompiler} from './mlir.js';
 export {MadPascalCompiler} from './madpascal.js';
 export {MovfuscatorCompiler} from './movfuscator.js';
-export {MLIRCompiler} from './mlir.js';
-export {GM2Compiler} from './gm2.js';
 export {MrustcCompiler} from './mrustc.js';
-export {SnowballCompiler} from './snowball.js';
+export {Msp430Compiler} from './msp430.js';
 export {NasmCompiler} from './nasm.js';
 export {NimCompiler} from './nim.js';
 export {NvccCompiler} from './nvcc.js';
-export {NvrtcCompiler} from './nvrtc.js';
 export {NvcppCompiler} from './nvcpp.js';
+export {NvrtcCompiler} from './nvrtc.js';
 export {OCamlCompiler} from './ocaml.js';
+export {OSACATool} from './osaca.js';
 export {OdinCompiler} from './odin.js';
 export {OptCompiler} from './opt.js';
-export {OSACATool} from './osaca.js';
+export {PPCICompiler} from './ppci.js';
 export {PascalWinCompiler} from './pascal-win.js';
 export {PonyCompiler} from './pony.js';
-export {PPCICompiler} from './ppci.js';
 export {PtxAssembler} from './ptxas.js';
 export {PythonCompiler} from './python.js';
 export {PythranCompiler} from './pythran.js';
 export {QNXCompiler} from './qnx.js';
 export {R8Compiler} from './r8.js';
-export {RacketCompiler} from './racket.js';
 export {RGACompiler} from './rga.js';
+export {RacketCompiler} from './racket.js';
 export {RubyCompiler} from './ruby.js';
-export {RustcCgGCCCompiler} from './rustc-cg-gcc.js';
 export {RustCompiler} from './rust.js';
+export {RustcCgGCCCompiler} from './rustc-cg-gcc.js';
+export {SPIRVCompiler} from './spirv.js';
+export {SPIRVToolsCompiler} from './spirv-tools.js';
 export {ScalaCompiler} from './scala.js';
 export {SdccCompiler} from './sdcc.js';
 export {SlangCompiler} from './slang.js';
+export {SnowballCompiler} from './snowball.js';
 export {SolidityCompiler} from './solidity.js';
 export {SolidityZKsyncCompiler} from './solidity-zksync.js';
 export {SpiceCompiler} from './spice.js';
-export {SPIRVCompiler} from './spirv.js';
-export {SPIRVToolsCompiler} from './spirv-tools.js';
 export {SwiftCompiler} from './swift.js';
+export {TIC2000} from './tic2000.js';
 export {TableGenCompiler} from './tablegen.js';
 export {TenDRACompiler} from './tendra.js';
-export {TIC2000} from './tic2000.js';
 export {TinyCCompiler} from './tinyc.js';
 export {ToitCompiler} from './toit.js';
 export {TurboCCompiler} from './turboc.js';
 export {TypeScriptNativeCompiler} from './typescript-native.js';
+export {V8Compiler} from './v8.js';
 export {VCompiler} from './v.js';
 export {ValaCompiler} from './vala.js';
 export {VyperCompiler} from './vyper.js';
-export {V8Compiler} from './v8.js';
+export {WasmtimeCompiler} from './wasmtime.js';
 export {Win32Compiler} from './win32.js';
+export {Win32MingWClang} from './win32-mingw-clang.js';
+export {Win32MingWGcc} from './win32-mingw-gcc.js';
 export {Win32Vc6Compiler} from './win32-vc6.js';
 export {Win32VcCompiler} from './win32-vc.js';
-export {Win32MingWGcc} from './win32-mingw-gcc.js';
-export {Win32MingWClang} from './win32-mingw-clang.js';
 export {WineVcCompiler} from './wine-vc.js';
 export {WslVcCompiler} from './wsl-vc.js';
 export {WyrmCompiler} from './wyrm.js';
-export {WasmtimeCompiler} from './wasmtime.js';
+export {YLCCompiler} from './ylc.js';
 export {ZigCC} from './zigcc.js';
-export {ZigCompiler} from './zig.js';
 export {ZigCXX} from './zigcxx.js';
+export {ZigCompiler} from './zig.js';
 export {z88dkCompiler} from './z88dk.js';
diff --git a/lib/compilers/dex2oat.ts b/lib/compilers/dex2oat.ts
index 6fe875606..25e66ef95 100644
--- a/lib/compilers/dex2oat.ts
+++ b/lib/compilers/dex2oat.ts
@@ -145,7 +145,7 @@ export class Dex2OatCompiler extends BaseCompiler {
 
         // Regexes that apply to .smali files (R8/D8 dump output).
         this.smaliLineNumberRegex = /^\s+\.line\s+(\d+).*$/;
-        this.smaliClassRegex = /^\.class\s.*(L.*;)$/;
+        this.smaliClassRegex = /^\.class.*\s(L.*;)$/;
         this.smaliDexPcRegex = /^\s+#@(\w+).*$/;
         this.smaliMethodStartRegex = /^\.method\s(.*)$/;
         this.smaliMethodEndRegex = /^\s*\.end\smethod.*$/;
diff --git a/lib/compilers/msp430.ts b/lib/compilers/msp430.ts
new file mode 100644
index 000000000..2a0306ae8
--- /dev/null
+++ b/lib/compilers/msp430.ts
@@ -0,0 +1,40 @@
+// Copyright (c) 2025, Compiler Explorer Authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//       this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
+import {BaseCompiler} from '../base-compiler.js';
+import {CompilationEnvironment} from '../compilation-env.js';
+import {AsmParserMsp430} from '../parsers/asm-parser-msp430.js';
+
+export class Msp430Compiler extends BaseCompiler {
+    static get key() {
+        return 'msp430';
+    }
+
+    constructor(info: PreliminaryCompilerInfo, env: CompilationEnvironment) {
+        super(info, env);
+        // Our only difference is to use this somewhat patched asm parser.
+        this.asm = new AsmParserMsp430(this.compilerProps);
+    }
+}
diff --git a/lib/parsers/asm-parser-msp430.ts b/lib/parsers/asm-parser-msp430.ts
new file mode 100644
index 000000000..961eb26fe
--- /dev/null
+++ b/lib/parsers/asm-parser-msp430.ts
@@ -0,0 +1,45 @@
+// Copyright (c) 2025, Compiler Explorer Authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//       this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+import {ParsedAsmResult} from '../../types/asmresult/asmresult.interfaces.js';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
+
+import {AsmParser} from './asm-parser.js';
+
+export class AsmParserMsp430 extends AsmParser {
+    private fixupAsm(asm: string): string {
+        // msp430-gcc inlines functions in a weird way with `{` separating instructions. This leads to unusual output;
+        // and rather than do a bunch of work for a pretty niche asm, we replace each `{` with a newline and some spaces
+        // to re-indent per the msp430 style. See https://github.com/compiler-explorer/compiler-explorer/issues/295
+        return asm.replaceAll('{', '\n       ');
+    }
+
+    override processAsm(asmResult: string, filters: ParseFiltersAndOutputOptions): ParsedAsmResult {
+        return super.processAsm(this.fixupAsm(asmResult), filters);
+    }
+
+    override processBinaryAsm(asmResult: string, filters: ParseFiltersAndOutputOptions): ParsedAsmResult {
+        return super.processBinaryAsm(this.fixupAsm(asmResult), filters);
+    }
+}
diff --git a/lib/parsers/asm-parser.ts b/lib/parsers/asm-parser.ts
index 0b6af58da..523a7c487 100644
--- a/lib/parsers/asm-parser.ts
+++ b/lib/parsers/asm-parser.ts
@@ -60,6 +60,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
     definesFunction: RegExp;
     definesGlobal: RegExp;
     definesWeak: RegExp;
+    definesAlias: RegExp;
     indentedLabelDef: RegExp;
     assignmentDef: RegExp;
     directive: RegExp;
@@ -109,6 +110,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
         this.definesFunction = /^\s*\.(type.*,\s*[#%@]function|proc\s+[.A-Z_a-z][\w$.]*:.*)$/;
         this.definesGlobal = /^\s*\.(?:globa?l|GLB|export)\s*([.A-Z_a-z][\w$.]*)/;
         this.definesWeak = /^\s*\.(?:weakext|weak)\s*([.A-Z_a-z][\w$.]*)/;
+        this.definesAlias = /^\s*\.set\s*([.A-Z_a-z][\w$.]*\s*),\s*\.\s*(\+\s*0)?$/;
         this.indentedLabelDef = /^\s*([$.A-Z_a-z][\w$.]*):/;
         this.assignmentDef = /^\s*([$.A-Z_a-z][\w$.]*)\s*=\s*(.*)/;
         this.directive = /^\s*\..*$/;
@@ -209,6 +211,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
         let inFunction = false;
         let inNvccCode = false;
         let inVLIWpacket = false;
+        let definingAlias: string | undefined;
 
         // Scan through looking for definite label usages (ones used by opcodes),
         // and ones that are weakly used: that is, their use is conditional on another label.
@@ -244,8 +247,17 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 if (inLabelGroup) currentLabelSet.push(match[1]);
                 else currentLabelSet = [match[1]];
                 inLabelGroup = true;
+                if (definingAlias) {
+                    // If we're defining an alias, then any labels in this group are weakly used by the alias.
+                    if (!weakUsages[definingAlias]) weakUsages[definingAlias] = [];
+                    weakUsages[definingAlias].push(match[1]);
+                }
             } else {
-                inLabelGroup = false;
+                if (inLabelGroup) {
+                    inLabelGroup = false;
+                    // Once we exit the label group after an alias, we're no longer defining an alias.
+                    definingAlias = undefined;
+                }
             }
             match = line.match(this.definesGlobal);
             if (!match) match = line.match(this.definesWeak);
@@ -254,6 +266,12 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 labelsUsed[match[1]] = true;
             }
 
+            const definesAlias = line.match(this.definesAlias);
+            if (definesAlias) {
+                // We are defining an alias for match[1]; so the next label definition is the _same_ as this.
+                definingAlias = definesAlias[1];
+            }
+
             const definesFunction = line.match(this.definesFunction);
             if (!definesFunction && (!line || line[0] === '.')) continue;
 
@@ -269,11 +287,11 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 const isDataDefinition = !!this.dataDefn.test(line);
                 const isOpcode = this.hasOpcode(line, inNvccCode, inVLIWpacket);
                 if (isDataDefinition || isOpcode) {
-                    for (const currentLabel of currentLabelSet) {
-                        if (inFunction && isDataDefinition) {
-                            // Data definitions in the middle of code should be treated as if they were used strongly.
-                            for (const label of match) labelsUsed[label] = true;
-                        } else {
+                    if (inFunction && isDataDefinition) {
+                        // Data definitions in the middle of code should be treated as if they were used strongly.
+                        for (const label of match) labelsUsed[label] = true;
+                    } else {
+                        for (const currentLabel of currentLabelSet) {
                             if (!weakUsages[currentLabel]) weakUsages[currentLabel] = [];
                             for (const label of match) weakUsages[currentLabel].push(label);
                         }
@@ -300,7 +318,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 });
             });
             if (!toAdd) break;
-            _.each(toAdd, markUsed);
+            for (const label of toAdd) markUsed(label);
         }
         return labelsUsed;
     }
@@ -628,6 +646,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 ) {
                     // It's an unused label.
                     if (filters.labels) {
+                        context.prevLabel = '';
                         continue;
                     }
                 } else {
@@ -648,8 +667,9 @@ export class AsmParser extends AsmRegex implements IAsmParser {
                 if (this.dataDefn.test(line) && context.prevLabel) {
                     // We're defining data that's being used somewhere.
                 } else {
-                    // .inst generates an opcode, so does not count as a directive
-                    if (this.directive.test(line) && !this.instOpcodeRe.test(line)) {
+                    // .inst generates an opcode, so does not count as a directive, nor does an alias definition that's
+                    // used.
+                    if (this.directive.test(line) && !this.instOpcodeRe.test(line) && !this.definesAlias.test(line)) {
                         continue;
                     }
                 }


Test patch:
diff --git a/test/android-tests.ts b/test/android-tests.ts
index 0873bb09b..f3bf43cdd 100644
--- a/test/android-tests.ts
+++ b/test/android-tests.ts
@@ -75,6 +75,14 @@ describe('dex2oat', () => {
             return testParseSmaliForLineNumbers(androidJavaInfo, 'test/android/parse-data');
         });
 
+        it("Classes with 'L' in the name compile correctly", () => {
+            return testParseSmaliClassWithL(androidJavaInfo, 'test/android/parse-data');
+        });
+
+        it('Inner classes are correctly read in .smali files', () => {
+            return testParseSmaliInnerClasses(androidJavaInfo, 'test/android/parse-data');
+        });
+
         it('Dex PCs are correctly extracted from classes.cfg', () => {
             return testParsePassDumpsForDexPcs(androidJavaInfo, 'test/android/parse-data');
         });
@@ -119,6 +127,14 @@ describe('dex2oat', () => {
             return testParseSmaliForLineNumbers(androidKotlinInfo, 'test/android/parse-data');
         });
 
+        it("Classes with 'L' in the name compile correctly", () => {
+            return testParseSmaliClassWithL(androidKotlinInfo, 'test/android/parse-data');
+        });
+
+        it('Inner classes are correctly read in .smali files', () => {
+            return testParseSmaliInnerClasses(androidKotlinInfo, 'test/android/parse-data');
+        });
+
         it('Dex PCs are correctly extracted from classes.cfg', () => {
             return testParsePassDumpsForDexPcs(androidKotlinInfo, 'test/android/parse-data');
         });
@@ -184,6 +200,48 @@ describe('dex2oat', () => {
         expect(dexPcsToLines).toHaveProperty('int Square.square(int)', {0: 14, 1: 14});
     }
 
+    async function testParseSmaliClassWithL(info: CompilerInfo, baseFolder: string) {
+        const compiler = new Dex2OatCompiler(info, env);
+        const rawSmaliText = fs.readFileSync(`${baseFolder}/ClassWithL.smali`, {encoding: 'utf8'});
+
+        const dexPcsToLines: Record<string, Record<number, number>> = {};
+        compiler.parseSmaliForLineNumbers(dexPcsToLines, rawSmaliText.split(/\n/));
+
+        expect(Object.keys(dexPcsToLines)).toHaveLength(2);
+        expect(dexPcsToLines).toHaveProperty('void LSLqLuLaLrLeL.<init>()', {0: 12, 3: 12});
+        expect(dexPcsToLines).toHaveProperty('int LSLqLuLaLrLeL.square(int)', {0: 14, 1: 14});
+    }
+
+    async function testParseSmaliInnerClasses(info: CompilerInfo, baseFolder: string) {
+        const compiler = new Dex2OatCompiler(info, env);
+        const rawSmaliText = fs.readFileSync(`${baseFolder}/InnerClassCases.smali`, {encoding: 'utf8'});
+
+        const dexPcsToLines: Record<string, Record<number, number>> = {};
+        compiler.parseSmaliForLineNumbers(dexPcsToLines, rawSmaliText.split(/\n/));
+
+        expect(Object.keys(dexPcsToLines)).toHaveLength(6);
+
+        // Self
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases.<init>()', {0: 1, 3: 1});
+
+        // Non-static
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases$InnerClass.<init>(InnerClassCases)', {
+            0: 2,
+            2: 2,
+            5: 2,
+        });
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases$FinalInnerClass.<init>(InnerClassCases)', {
+            0: 3,
+            2: 3,
+            5: 3,
+        });
+
+        // Static
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases$StaticInnerClass.<init>()', {0: 4, 3: 4});
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases$StaticFinalInnerClass.<init>()', {0: 5, 3: 5});
+        expect(dexPcsToLines).toHaveProperty('void InnerClassCases$LStartsWithL.<init>()', {0: 6, 3: 6});
+    }
+
     async function testParsePassDumpsForDexPcs(info: CompilerInfo, baseFolder: string) {
         const compiler = new Dex2OatCompiler(info, env);
         const rawCfgText = fs.readFileSync(`${baseFolder}/classes.cfg`, {encoding: 'utf8'});
diff --git a/test/android/parse-data/ClassWithL.smali b/test/android/parse-data/ClassWithL.smali
new file mode 100644
index 000000000..063eb502b
--- /dev/null
+++ b/test/android/parse-data/ClassWithL.smali
@@ -0,0 +1,27 @@
+.class LLSLqLuLaLrLeL;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# direct methods
+.method constructor <init>()V
+    .registers 1
+
+    #@0
+    .line 12
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@3
+    return-void
+.end method
+
+.method static square(I)I
+    .registers 1
+
+    #@0
+    .line 14
+    mul-int/2addr p0, p0
+
+    #@1
+    return p0
+.end method
diff --git a/test/android/parse-data/InnerClassCases.smali b/test/android/parse-data/InnerClassCases.smali
new file mode 100644
index 000000000..2707544e2
--- /dev/null
+++ b/test/android/parse-data/InnerClassCases.smali
@@ -0,0 +1,187 @@
+.class final LInnerClassCases$FinalInnerClass;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/EnclosingClass;
+    value = LInnerClassCases;
+.end annotation
+
+.annotation system Ldalvik/annotation/InnerClass;
+    accessFlags = 0x10
+    name = "FinalInnerClass"
+.end annotation
+
+
+# instance fields
+.field final synthetic this$0:LInnerClassCases;
+
+
+# direct methods
+.method constructor <init>(LInnerClassCases;)V
+    .registers 2
+
+    #@0
+    .line 3
+    iput-object p1, p0, LInnerClassCases$FinalInnerClass;->this$0:LInnerClassCases;
+
+    #@2
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@5
+    return-void
+.end method
+
+
+.class LInnerClassCases$InnerClass;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/EnclosingClass;
+    value = LInnerClassCases;
+.end annotation
+
+.annotation system Ldalvik/annotation/InnerClass;
+    accessFlags = 0x0
+    name = "InnerClass"
+.end annotation
+
+
+# instance fields
+.field final synthetic this$0:LInnerClassCases;
+
+
+# direct methods
+.method constructor <init>(LInnerClassCases;)V
+    .registers 2
+
+    #@0
+    .line 2
+    iput-object p1, p0, LInnerClassCases$InnerClass;->this$0:LInnerClassCases;
+
+    #@2
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@5
+    return-void
+.end method
+
+
+.class final LInnerClassCases$LStartsWithL;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/EnclosingClass;
+    value = LInnerClassCases;
+.end annotation
+
+.annotation system Ldalvik/annotation/InnerClass;
+    accessFlags = 0x18
+    name = "LStartsWithL"
+.end annotation
+
+
+# direct methods
+.method constructor <init>()V
+    .registers 1
+
+    #@0
+    .line 6
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@3
+    return-void
+.end method
+
+
+.class final LInnerClassCases$StaticFinalInnerClass;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/EnclosingClass;
+    value = LInnerClassCases;
+.end annotation
+
+.annotation system Ldalvik/annotation/InnerClass;
+    accessFlags = 0x18
+    name = "StaticFinalInnerClass"
+.end annotation
+
+
+# direct methods
+.method constructor <init>()V
+    .registers 1
+
+    #@0
+    .line 5
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@3
+    return-void
+.end method
+
+
+.class LInnerClassCases$StaticInnerClass;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/EnclosingClass;
+    value = LInnerClassCases;
+.end annotation
+
+.annotation system Ldalvik/annotation/InnerClass;
+    accessFlags = 0x8
+    name = "StaticInnerClass"
+.end annotation
+
+
+# direct methods
+.method constructor <init>()V
+    .registers 1
+
+    #@0
+    .line 4
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@3
+    return-void
+.end method
+
+
+.class LInnerClassCases;
+.super Ljava/lang/Object;
+.source "example.java"
+
+
+# annotations
+.annotation system Ldalvik/annotation/MemberClasses;
+    value = {
+        LInnerClassCases$LStartsWithL;,
+        LInnerClassCases$StaticFinalInnerClass;,
+        LInnerClassCases$StaticInnerClass;,
+        LInnerClassCases$FinalInnerClass;,
+        LInnerClassCases$InnerClass;
+    }
+.end annotation
+
+
+# direct methods
+.method constructor <init>()V
+    .registers 1
+
+    #@0
+    .line 1
+    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
+
+    #@3
+    return-void
+.end method
diff --git a/test/compiler-finder-tests.ts b/test/compiler-finder-tests.ts
index 88522c200..6774327b6 100644
--- a/test/compiler-finder-tests.ts
+++ b/test/compiler-finder-tests.ts
@@ -121,72 +121,36 @@ describe('Compiler-finder', () => {
     });
 
     it('should not hang for undefined groups (Bug #860)', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            compilerProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, compilerProps, {} as any, optionsHandler);
         await expect(finder.getCompilers()).resolves.toHaveLength(1);
     });
 
     it('should behave properly if no options are provided at all', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            noOptionsAtAllProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, noOptionsAtAllProps, {} as any, optionsHandler);
         const compilers = await finder.getCompilers();
         expect(compilers[0].options).toEqual('');
     });
 
     it('should behave properly if no base options are provided', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            noBaseOptionsProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, noBaseOptionsProps, {} as any, optionsHandler);
         const compilers = await finder.getCompilers();
         expect(compilers[0].options).toEqual('bar');
     });
 
     it('should behave properly if only base options are provided', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            onlyBaseOptionsProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, onlyBaseOptionsProps, {} as any, optionsHandler);
         const compilers = await finder.getCompilers();
         expect(compilers[0].options).toEqual('foo');
     });
 
     it('should behave properly if both options are provided', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            bothOptionsProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, bothOptionsProps, {} as any, optionsHandler);
         const compilers = await finder.getCompilers();
         expect(compilers[0].options).toEqual('foo bar');
     });
 
     it('should be able to filter libraries', async () => {
-        const finder = new CompilerFinder(
-            {} as any,
-            libraryCompilerProps,
-            properties.fakeProps({}),
-            {} as any,
-            optionsHandler,
-        );
+        const finder = new CompilerFinder({} as any, libraryCompilerProps, {} as any, optionsHandler);
         const compilers = await finder.getCompilers();
         const libsArr = compilers[0].libsArr;
         expect(libsArr).toEqual(['fmt', 'catch2.2101']);
diff --git a/test/filters-cases/bug-1799.asm b/test/filters-cases/bug-1799.asm
new file mode 100644
index 000000000..5dfd6a17b
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm
@@ -0,0 +1,120 @@
+  .cpu arm7tdmi
+  .eabi_attribute 20, 1
+  .eabi_attribute 21, 1
+  .eabi_attribute 23, 3
+  .eabi_attribute 24, 1
+  .eabi_attribute 25, 1
+  .eabi_attribute 26, 1
+  .eabi_attribute 30, 2
+  .eabi_attribute 34, 0
+  .eabi_attribute 18, 4
+  .file "example.cpp"
+  .text
+.Ltext0:
+  .cfi_sections .debug_frame
+  .align 2
+  .global DaysInMonth2()
+  .arch armv4t
+  .syntax unified
+  .arm
+  .fpu softvfp
+  .type DaysInMonth2(), %function
+DaysInMonth2():
+  .fnstart
+.LFB2:
+  .file 1 "/app/example.cpp"
+  .loc 1 22 20 view -0
+  .cfi_startproc
+  .loc 1 22 22 view .LVU1
+  .loc 1 22 40 is_stmt 0 view .LVU2
+  ldr r3, .L8
+  ldr r3, [r3]
+  ldr r2, .L8+4
+.LBB8:
+  .loc 1 13 18 view .LVU3
+  cmp r3, #1
+.LBE8:
+  .loc 1 22 40 view .LVU4
+  ldr r2, [r2]
+.LVL0:
+.LBB13:
+.LBI8:
+  .loc 1 10 15 is_stmt 1 view .LVU5
+  .loc 1 13 3 view .LVU6
+  .loc 1 13 18 is_stmt 0 view .LVU7
+  beq .L7
+.L2:
+  .loc 1 17 3 is_stmt 1 view .LVU8
+  .loc 1 17 23 is_stmt 0 view .LVU9
+  ldr r2, .L8+8
+.LVL1:
+  .loc 1 17 23 view .LVU10
+  ldr r0, [r2, r3, lsl #2]
+  bx lr
+.LVL2:
+.L7:
+.LBB10:
+.LBI10:
+  .loc 1 1 16 is_stmt 1 view .LVU11
+  .loc 1 4 3 view .LVU12
+  .loc 1 4 26 is_stmt 0 view .LVU13
+  tst r2, #3
+  bne .L2
+  .loc 1 4 36 view .LVU14
+  ldr r1, .L8+12
+  smull ip, r0, r1, r2
+  asr r1, r2, #31
+  rsb r1, r1, r0, asr #3
+  add r1, r1, r1, lsl #2
+  add r1, r1, r1, lsl #2
+  .loc 1 4 26 view .LVU15
+  cmp r2, r1
+  bne .L5
+  .loc 1 4 47 view .LVU16
+  tst r2, #15
+  bne .L2
+.L5:
+  .loc 1 4 47 view .LVU17
+.LBE10:
+  .loc 1 14 12 view .LVU18
+  mov r0, #29
+.LVL3:
+  .loc 1 14 12 view .LVU19
+.LBE13:
+  .loc 1 22 48 view .LVU20
+  bx lr
+  .align 2
+.L8:
+  .word b
+  .word a
+  .word .LANCHOR0
+  .word 1374389535
+  .cfi_endproc
+.LFE2:
+  .cantunwind
+  .fnend
+  .size DaysInMonth2(), .-DaysInMonth2()
+  .section .rodata
+  .align 2
+  .set .LANCHOR0,. + 0
+  .type sg_days, %object
+  .size sg_days, 48
+sg_days:
+  .word 31
+  .word 28
+  .word 31
+  .word 30
+  .word 31
+  .word 30
+  .word 31
+  .word 31
+  .word 30
+  .word 31
+  .word 30
+  .word 31
+  .text
+.Letext0:
+  .section .debug_info,"",%progbits
+.Ldebug_info0:
+  .4byte 0x135
+  .2byte 0x4
diff --git a/test/filters-cases/bug-1799.asm.binary.directives.labels.comments.json b/test/filters-cases/bug-1799.asm.binary.directives.labels.comments.json
new file mode 100644
index 000000000..720205208
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.binary.directives.labels.comments.json
@@ -0,0 +1,4 @@
+{
+  "asm": [],
+  "labelDefinitions": {}
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.comments.json b/test/filters-cases/bug-1799.asm.directives.comments.json
new file mode 100644
index 000000000..78bf6d297
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.comments.json
@@ -0,0 +1,482 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ltext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFB2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB13:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI8:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL1:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL3:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE13:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFE2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Letext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ldebug_info0:"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 15,
+    ".L5": 36,
+    ".L7": 21,
+    ".L8": 42,
+    "sg_days": 49
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.json b/test/filters-cases/bug-1799.asm.directives.json
new file mode 100644
index 000000000..78bf6d297
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.json
@@ -0,0 +1,482 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ltext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFB2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB13:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI8:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL1:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL3:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE13:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFE2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Letext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ldebug_info0:"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 15,
+    ".L5": 36,
+    ".L7": 21,
+    ".L8": 42,
+    "sg_days": 49
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.labels.comments.json b/test/filters-cases/bug-1799.asm.directives.labels.comments.json
new file mode 100644
index 000000000..e2edcaeda
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.labels.comments.json
@@ -0,0 +1,397 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 8,
+    ".L5": 25,
+    ".L7": 12,
+    ".L8": 28,
+    "sg_days": 34
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.labels.comments.library.dontMaskFilenames.json b/test/filters-cases/bug-1799.asm.directives.labels.comments.library.dontMaskFilenames.json
new file mode 100644
index 000000000..72d9157e2
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.labels.comments.library.dontMaskFilenames.json
@@ -0,0 +1,420 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": "example.cpp",
+        "line": 22,
+        "mainsource": true
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": "example.cpp",
+        "line": 22,
+        "mainsource": true
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": "example.cpp",
+        "line": 22,
+        "mainsource": true
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": "example.cpp",
+        "line": 13,
+        "mainsource": true
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": "example.cpp",
+        "line": 22,
+        "mainsource": true
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": "example.cpp",
+        "line": 13,
+        "mainsource": true
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": "example.cpp",
+        "line": 17,
+        "mainsource": true
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": "example.cpp",
+        "line": 17,
+        "mainsource": true
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": "example.cpp",
+        "line": 17,
+        "mainsource": true
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": "example.cpp",
+        "line": 4,
+        "mainsource": true
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": "example.cpp",
+        "line": 14,
+        "mainsource": true
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": "example.cpp",
+        "line": 22,
+        "mainsource": true
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 8,
+    ".L5": 25,
+    ".L7": 12,
+    ".L8": 28,
+    "sg_days": 34
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.labels.comments.library.json b/test/filters-cases/bug-1799.asm.directives.labels.comments.library.json
new file mode 100644
index 000000000..e2edcaeda
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.labels.comments.library.json
@@ -0,0 +1,397 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 8,
+    ".L5": 25,
+    ".L7": 12,
+    ".L8": 28,
+    "sg_days": 34
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.labels.json b/test/filters-cases/bug-1799.asm.directives.labels.json
new file mode 100644
index 000000000..e2edcaeda
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.labels.json
@@ -0,0 +1,397 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 8,
+    ".L5": 25,
+    ".L7": 12,
+    ".L8": 28,
+    "sg_days": 34
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.directives.library.json b/test/filters-cases/bug-1799.asm.directives.library.json
new file mode 100644
index 000000000..78bf6d297
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.directives.library.json
@@ -0,0 +1,482 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ltext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFB2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE8:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB13:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI8:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL1:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE10:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL3:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE13:"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFE2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Letext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ldebug_info0:"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 15,
+    ".L5": 36,
+    ".L7": 21,
+    ".L8": 42,
+    "sg_days": 49
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-1799.asm.none.json b/test/filters-cases/bug-1799.asm.none.json
new file mode 100644
index 000000000..48b044e8a
--- /dev/null
+++ b/test/filters-cases/bug-1799.asm.none.json
@@ -0,0 +1,783 @@
+{
+  "asm": [
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .cpu arm7tdmi"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 20, 1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 21, 1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 23, 3"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 24, 1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 25, 1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 26, 1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 30, 2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 34, 0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .eabi_attribute 18, 4"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .file \"example.cpp\""
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .text"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ltext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .cfi_sections .debug_frame"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .align 2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .global DaysInMonth2()"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .arch armv4t"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .syntax unified"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .arm"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .fpu softvfp"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .type DaysInMonth2(), %function"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "DaysInMonth2():"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .fnstart"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFB2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .file 1 \"/app/example.cpp\""
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 22 20 view -0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .cfi_startproc"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 22 22 view .LVU1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 22 40 is_stmt 0 view .LVU2"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, .L8"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r3, [r3]"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, .L8+4"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 13 18 view .LVU3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  cmp r3, #1"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 22 40 view .LVU4"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 40,
+        "file": null,
+        "line": 22
+      },
+      "text": "  ldr r2, [r2]"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB13:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 10 15 is_stmt 1 view .LVU5"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 13 3 view .LVU6"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 13 18 is_stmt 0 view .LVU7"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L7",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 18,
+        "file": null,
+        "line": 13
+      },
+      "text": "  beq .L7"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 17 3 is_stmt 1 view .LVU8"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 17 23 is_stmt 0 view .LVU9"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r2, .L8+8"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL1:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 17 23 view .LVU10"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  ldr r0, [r2, r3, lsl #2]"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 23,
+        "file": null,
+        "line": 17
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L7:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBB10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBI10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 1 16 is_stmt 1 view .LVU11"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 3 view .LVU12"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 26 is_stmt 0 view .LVU13"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #3"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 36 view .LVU14"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L8",
+          "range": {
+            "endCol": 14,
+            "startCol": 11
+          }
+        }
+      ],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  ldr r1, .L8+12"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  smull ip, r0, r1, r2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  asr r1, r2, #31"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  rsb r1, r1, r0, asr #3"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 36,
+        "file": null,
+        "line": 4
+      },
+      "text": "  add r1, r1, r1, lsl #2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 26 view .LVU15"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  cmp r2, r1"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L5",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 26,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L5"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 47 view .LVU16"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  tst r2, #15"
+    },
+    {
+      "labels": [
+        {
+          "name": ".L2",
+          "range": {
+            "endCol": 10,
+            "startCol": 7
+          }
+        }
+      ],
+      "source": {
+        "column": 47,
+        "file": null,
+        "line": 4
+      },
+      "text": "  bne .L2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L5:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 4 47 view .LVU17"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE10:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 14 12 view .LVU18"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 12,
+        "file": null,
+        "line": 14
+      },
+      "text": "  mov r0, #29"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LVL3:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 14 12 view .LVU19"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LBE13:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .loc 1 22 48 view .LVU20"
+    },
+    {
+      "labels": [],
+      "source": {
+        "column": 48,
+        "file": null,
+        "line": 22
+      },
+      "text": "  bx lr"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .align 2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".L8:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word b"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word a"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word .LANCHOR0"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 1374389535"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .cfi_endproc"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".LFE2:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .cantunwind"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .fnend"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .size DaysInMonth2(), .-DaysInMonth2()"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .section .rodata"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .align 2"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .set .LANCHOR0,. + 0"
+    },
+    {
+      "labels": [
+        {
+          "name": "sg_days",
+          "range": {
+            "endCol": 16,
+            "startCol": 9
+          }
+        }
+      ],
+      "source": null,
+      "text": "  .type sg_days, %object"
+    },
+    {
+      "labels": [
+        {
+          "name": "sg_days",
+          "range": {
+            "endCol": 16,
+            "startCol": 9
+          }
+        }
+      ],
+      "source": null,
+      "text": "  .size sg_days, 48"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "sg_days:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 28"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 30"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .word 31"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .text"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Letext0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .section .debug_info,\"\",%progbits"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": ".Ldebug_info0:"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .4byte 0x135"
+    },
+    {
+      "labels": [],
+      "source": null,
+      "text": "  .2byte 0x4"
+    }
+  ],
+  "labelDefinitions": {
+    ".L2": 46,
+    ".L5": 76,
+    ".L7": 55,
+    ".L8": 87,
+    "sg_days": 102
+  }
+}
\ No newline at end of file
diff --git a/test/filters-cases/bug-2788.asm.directives.labels.comments.json b/test/filters-cases/bug-2788.asm.directives.labels.comments.json
index d55d27c55..368d58d81 100644
--- a/test/filters-cases/bug-2788.asm.directives.labels.comments.json
+++ b/test/filters-cases/bug-2788.asm.directives.labels.comments.json
@@ -49,266 +49,6 @@
       },
       "text": "        b       .L7"
     },
-    {
-      "labels": [
-        {
-          "name": ".L8",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L8"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L6",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L6"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L5",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L5"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L3",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L3"
-    },
     {
       "labels": [],
       "source": null,
@@ -408,11 +148,11 @@
     }
   ],
   "labelDefinitions": {
-    ".L3": 30,
-    ".L5": 33,
-    ".L6": 36,
-    ".L7": 28,
-    ".L8": 26,
+    ".L3": 10,
+    ".L5": 13,
+    ".L6": 16,
+    ".L7": 8,
+    ".L8": 6,
     "_Z4revcc": 1
   }
 }
diff --git a/test/filters-cases/bug-2788.asm.directives.labels.comments.library.dontMaskFilenames.json b/test/filters-cases/bug-2788.asm.directives.labels.comments.library.dontMaskFilenames.json
index 0bde0dd09..8d4247207 100644
--- a/test/filters-cases/bug-2788.asm.directives.labels.comments.library.dontMaskFilenames.json
+++ b/test/filters-cases/bug-2788.asm.directives.labels.comments.library.dontMaskFilenames.json
@@ -53,266 +53,6 @@
       },
       "text": "        b       .L7"
     },
-    {
-      "labels": [
-        {
-          "name": ".L8",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L8"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L6",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L6"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L5",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L5"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L3",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L3"
-    },
     {
       "labels": [],
       "source": null,
@@ -420,11 +160,11 @@
     }
   ],
   "labelDefinitions": {
-    ".L3": 30,
-    ".L5": 33,
-    ".L6": 36,
-    ".L7": 28,
-    ".L8": 26,
+    ".L3": 10,
+    ".L5": 13,
+    ".L6": 16,
+    ".L7": 8,
+    ".L8": 6,
     "_Z4revcc": 1
   }
 }
diff --git a/test/filters-cases/bug-2788.asm.directives.labels.comments.library.json b/test/filters-cases/bug-2788.asm.directives.labels.comments.library.json
index d55d27c55..368d58d81 100644
--- a/test/filters-cases/bug-2788.asm.directives.labels.comments.library.json
+++ b/test/filters-cases/bug-2788.asm.directives.labels.comments.library.json
@@ -49,266 +49,6 @@
       },
       "text": "        b       .L7"
     },
-    {
-      "labels": [
-        {
-          "name": ".L8",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L8"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L6",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L6"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L5",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L5"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L3",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L3"
-    },
     {
       "labels": [],
       "source": null,
@@ -408,11 +148,11 @@
     }
   ],
   "labelDefinitions": {
-    ".L3": 30,
-    ".L5": 33,
-    ".L6": 36,
-    ".L7": 28,
-    ".L8": 26,
+    ".L3": 10,
+    ".L5": 13,
+    ".L6": 16,
+    ".L7": 8,
+    ".L8": 6,
     "_Z4revcc": 1
   }
 }
diff --git a/test/filters-cases/bug-2788.asm.directives.labels.json b/test/filters-cases/bug-2788.asm.directives.labels.json
index 47cd641a3..13b4bc14a 100644
--- a/test/filters-cases/bug-2788.asm.directives.labels.json
+++ b/test/filters-cases/bug-2788.asm.directives.labels.json
@@ -69,266 +69,6 @@
       },
       "text": "        b       .L7"
     },
-    {
-      "labels": [
-        {
-          "name": ".L8",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L8"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L6",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L6"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L5",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L5"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L7",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L7"
-    },
-    {
-      "labels": [
-        {
-          "name": ".L3",
-          "range": {
-            "endCol": 20,
-            "startCol": 17
-          }
-        }
-      ],
-      "source": null,
-      "text": "        .word   .L3"
-    },
     {
       "labels": [],
       "source": null,
@@ -428,11 +168,11 @@
     }
   ],
   "labelDefinitions": {
-    ".L3": 34,
-    ".L5": 37,
-    ".L6": 40,
-    ".L7": 32,
-    ".L8": 30,
+    ".L3": 14,
+    ".L5": 17,
+    ".L6": 20,
+    ".L7": 12,
+    ".L8": 10,
     "_Z4revcc": 1
   }
 }
diff --git a/test/filters-cases/clang-hellow.asm.directives.labels.comments.json b/test/filters-cases/clang-hellow.asm.directives.labels.comments.json
index d380563f0..abbef4d05 100644
--- a/test/filters-cases/clang-hellow.asm.directives.labels.comments.json
+++ b/test/filters-cases/clang-hellow.asm.directives.labels.comments.json
@@ -131,16 +131,6 @@
       "source": null,
       "text": "        .long   .Lset0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -200,16 +190,6 @@
       "source": null,
       "text": "        .long   .Lset2"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -237,9 +217,9 @@
   "labelDefinitions": {
     ".L.str": 12,
     ".Lset0": 16,
-    ".Lset1": 20,
-    ".Lset2": 25,
-    ".Lset3": 29,
+    ".Lset1": 18,
+    ".Lset2": 23,
+    ".Lset3": 25,
     "main": 1,
     "str": 14
   }
diff --git a/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.dontMaskFilenames.json b/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.dontMaskFilenames.json
index 2e490b579..4c199fc27 100644
--- a/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.dontMaskFilenames.json
+++ b/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.dontMaskFilenames.json
@@ -141,16 +141,6 @@
       "source": null,
       "text": "        .long   .Lset0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -210,16 +200,6 @@
       "source": null,
       "text": "        .long   .Lset2"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -247,9 +227,9 @@
   "labelDefinitions": {
     ".L.str": 12,
     ".Lset0": 16,
-    ".Lset1": 20,
-    ".Lset2": 25,
-    ".Lset3": 29,
+    ".Lset1": 18,
+    ".Lset2": 23,
+    ".Lset3": 25,
     "main": 1,
     "str": 14
   }
diff --git a/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.json b/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.json
index d380563f0..abbef4d05 100644
--- a/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.json
+++ b/test/filters-cases/clang-hellow.asm.directives.labels.comments.library.json
@@ -131,16 +131,6 @@
       "source": null,
       "text": "        .long   .Lset0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -200,16 +190,6 @@
       "source": null,
       "text": "        .long   .Lset2"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -237,9 +217,9 @@
   "labelDefinitions": {
     ".L.str": 12,
     ".Lset0": 16,
-    ".Lset1": 20,
-    ".Lset2": 25,
-    ".Lset3": 29,
+    ".Lset1": 18,
+    ".Lset2": 23,
+    ".Lset3": 25,
     "main": 1,
     "str": 14
   }
diff --git a/test/filters-cases/clang-hellow.asm.directives.labels.json b/test/filters-cases/clang-hellow.asm.directives.labels.json
index 80a3db93e..20727eb53 100644
--- a/test/filters-cases/clang-hellow.asm.directives.labels.json
+++ b/test/filters-cases/clang-hellow.asm.directives.labels.json
@@ -136,16 +136,6 @@
       "source": null,
       "text": "        .long   .Lset0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -205,16 +195,6 @@
       "source": null,
       "text": "        .long   .Lset2"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .short  2                       # DWARF Version"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .long   .Linfo_begin1           # Offset of Compilation Unit Info"
-    },
     {
       "labels": [],
       "source": null,
@@ -242,9 +222,9 @@
   "labelDefinitions": {
     ".L.str": 13,
     ".Lset0": 17,
-    ".Lset1": 21,
-    ".Lset2": 26,
-    ".Lset3": 30,
+    ".Lset1": 19,
+    ".Lset2": 24,
+    ".Lset3": 26,
     "main": 1,
     "str": 15
   }
diff --git a/test/filters-cases/diab.asm.directives.labels.comments.json b/test/filters-cases/diab.asm.directives.labels.comments.json
index 591444908..4ea4a93b5 100644
--- a/test/filters-cases/diab.asm.directives.labels.comments.json
+++ b/test/filters-cases/diab.asm.directives.labels.comments.json
@@ -2417,31 +2417,6 @@
       "source": null,
       "text": "        .byte         0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +1.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +2.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +3.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +4.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +5.0000000000000000000"
-    },
     {
       "labels": [],
       "source": null,
@@ -2559,14 +2534,14 @@
     }
   ],
   "labelDefinitions": {
-    ".L114": 280,
-    ".L115": 283,
-    ".L116": 286,
-    ".L117": 289,
-    ".L131": 292,
+    ".L114": 275,
+    ".L115": 278,
+    ".L116": 281,
+    ".L117": 284,
+    ".L131": 287,
     ".L158": 206,
-    ".L159": 295,
-    ".L160": 298,
+    ".L159": 290,
+    ".L160": 293,
     ".L42": 12,
     ".L44": 31,
     ".L45": 56,
@@ -2585,7 +2560,7 @@
     ".L64": 229,
     ".L65": 272,
     ".L66": 217,
-    ".L86": 301,
+    ".L86": 296,
     "main": 235
   }
 }
diff --git a/test/filters-cases/diab.asm.directives.labels.comments.library.dontMaskFilenames.json b/test/filters-cases/diab.asm.directives.labels.comments.library.dontMaskFilenames.json
index 591444908..4ea4a93b5 100644
--- a/test/filters-cases/diab.asm.directives.labels.comments.library.dontMaskFilenames.json
+++ b/test/filters-cases/diab.asm.directives.labels.comments.library.dontMaskFilenames.json
@@ -2417,31 +2417,6 @@
       "source": null,
       "text": "        .byte         0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +1.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +2.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +3.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +4.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +5.0000000000000000000"
-    },
     {
       "labels": [],
       "source": null,
@@ -2559,14 +2534,14 @@
     }
   ],
   "labelDefinitions": {
-    ".L114": 280,
-    ".L115": 283,
-    ".L116": 286,
-    ".L117": 289,
-    ".L131": 292,
+    ".L114": 275,
+    ".L115": 278,
+    ".L116": 281,
+    ".L117": 284,
+    ".L131": 287,
     ".L158": 206,
-    ".L159": 295,
-    ".L160": 298,
+    ".L159": 290,
+    ".L160": 293,
     ".L42": 12,
     ".L44": 31,
     ".L45": 56,
@@ -2585,7 +2560,7 @@
     ".L64": 229,
     ".L65": 272,
     ".L66": 217,
-    ".L86": 301,
+    ".L86": 296,
     "main": 235
   }
 }
diff --git a/test/filters-cases/diab.asm.directives.labels.comments.library.json b/test/filters-cases/diab.asm.directives.labels.comments.library.json
index 591444908..4ea4a93b5 100644
--- a/test/filters-cases/diab.asm.directives.labels.comments.library.json
+++ b/test/filters-cases/diab.asm.directives.labels.comments.library.json
@@ -2417,31 +2417,6 @@
       "source": null,
       "text": "        .byte         0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +1.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +2.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +3.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +4.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +5.0000000000000000000"
-    },
     {
       "labels": [],
       "source": null,
@@ -2559,14 +2534,14 @@
     }
   ],
   "labelDefinitions": {
-    ".L114": 280,
-    ".L115": 283,
-    ".L116": 286,
-    ".L117": 289,
-    ".L131": 292,
+    ".L114": 275,
+    ".L115": 278,
+    ".L116": 281,
+    ".L117": 284,
+    ".L131": 287,
     ".L158": 206,
-    ".L159": 295,
-    ".L160": 298,
+    ".L159": 290,
+    ".L160": 293,
     ".L42": 12,
     ".L44": 31,
     ".L45": 56,
@@ -2585,7 +2560,7 @@
     ".L64": 229,
     ".L65": 272,
     ".L66": 217,
-    ".L86": 301,
+    ".L86": 296,
     "main": 235
   }
 }
diff --git a/test/filters-cases/diab.asm.directives.labels.json b/test/filters-cases/diab.asm.directives.labels.json
index 2be6e32e9..0e0266ed1 100644
--- a/test/filters-cases/diab.asm.directives.labels.json
+++ b/test/filters-cases/diab.asm.directives.labels.json
@@ -2877,31 +2877,6 @@
       "source": null,
       "text": "        .byte         0"
     },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +1.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +2.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +3.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +4.0000000000000000000"
-    },
-    {
-      "labels": [],
-      "source": null,
-      "text": "        .double   +5.0000000000000000000"
-    },
     {
       "labels": [],
       "source": null,
@@ -3024,14 +2999,14 @@
     }
   ],
   "labelDefinitions": {
-    ".L114": 372,
-    ".L115": 375,
-    ".L116": 378,
-    ".L117": 381,
-    ".L131": 384,
+    ".L114": 367,
+    ".L115": 370,
+    ".L116": 373,
+    ".L117": 376,
+    ".L131": 379,
     ".L158": 273,
-    ".L159": 387,
-    ".L160": 390,
+    ".L159": 382,
+    ".L160": 385,
     ".L42": 27,
     ".L44": 46,
     ".L45": 83,
@@ -3050,7 +3025,7 @@
     ".L64": 296,
     ".L65": 364,
     ".L66": 284,
-    ".L86": 394,
+    ".L86": 389,
     "main": 313
   }
 }