When a module name is specified as -fmodule-name, that module gets a
clang::Module object, but it won't actually be built or imported; it
will be textual. CGDebugInfo wouldn't detect this and them emit a
DICompileUnit that had a hash but no name and that confused both
dsymutil, LLDB, and myself.
rdar://problem/47926508
Maybe it's just me but I had to reread this sentence a few times to be sure what you meant by the double negation. Maybe clang module without ASTFile must be specified by -fmodule-name is easier to grok.