Index: COFF/InputFiles.cpp =================================================================== --- COFF/InputFiles.cpp +++ COFF/InputFiles.cpp @@ -497,10 +497,9 @@ if (!File) return ""; if (File->ParentName.empty()) - return File->getName().lower(); + return File->getName(); - std::string Res = - (getBasename(File->ParentName) + "(" + getBasename(File->getName()) + ")") - .str(); - return StringRef(Res).lower(); + return (getBasename(File->ParentName) + "(" + getBasename(File->getName()) + + ")") + .str(); } Index: test/COFF/filename-casing.s =================================================================== --- test/COFF/filename-casing.s +++ test/COFF/filename-casing.s @@ -0,0 +1,14 @@ +# REQUIRES: x86 + +# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc -o %T/MixedCase.obj %s +# RUN: not lld-link /entry:main %T/MixedCase.obj 2>&1 | FileCheck -check-prefix=OBJECT %s + +# RUN: llvm-lib /out:%T/MixedCase.lib %T/MixedCase.obj +# RUN: not lld-link /machine:x64 /entry:main %T/MixedCase.lib 2>&1 | FileCheck -check-prefix=ARCHIVE %s + +# OBJECT: MixedCase.obj: undefined symbol: f +# ARCHIVE: MixedCase.lib(MixedCase.obj): undefined symbol: f + +.globl main +main: + callq f