summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp15
-rw-r--r--clang/lib/Sema/SemaAttr.cpp3
2 files changed, 14 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 45fc475e341..74db0e37a4d 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -1266,6 +1266,17 @@ public:
};
+static std::string qualifyWindowsLibrary(llvm::StringRef Lib) {
+ // If the argument does not end in .lib, automatically add the suffix. This
+ // matches the behavior of MSVC.
+ std::string ArgStr = Lib;
+ if (Lib.size() <= 4 ||
+ Lib.substr(Lib.size() - 4).compare_lower(".lib") != 0) {
+ ArgStr += ".lib";
+ }
+ return ArgStr;
+}
+
class WinX86_32TargetCodeGenInfo : public X86_32TargetCodeGenInfo {
public:
WinX86_32TargetCodeGenInfo(CodeGen::CodeGenTypes &CGT, unsigned RegParms)
@@ -1274,7 +1285,7 @@ public:
void getDependentLibraryOption(llvm::StringRef Lib,
llvm::SmallString<24> &Opt) const {
Opt = "/DEFAULTLIB:";
- Opt += Lib;
+ Opt += qualifyWindowsLibrary(Lib);
}
};
@@ -1300,7 +1311,7 @@ public:
void getDependentLibraryOption(llvm::StringRef Lib,
llvm::SmallString<24> &Opt) const {
Opt = "/DEFAULTLIB:";
- Opt += Lib;
+ Opt += qualifyWindowsLibrary(Lib);
}
};
diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index bc19b382989..943054be340 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -272,10 +272,9 @@ void Sema::ActOnPragmaMSComment(PragmaMSCommentKind Kind, llvm::StringRef Arg) {
case PCK_Linker:
Consumer.HandleLinkerOptionPragma(Arg);
return;
- case PCK_Lib: {
+ case PCK_Lib:
Consumer.HandleDependentLibrary(Arg);
return;
- }
case PCK_Compiler:
case PCK_ExeStr:
case PCK_User:
OpenPOWER on IntegriCloud