summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Rosenberg <alexr@leftfield.org>2015-01-28 18:26:15 +0000
committerAlex Rosenberg <alexr@leftfield.org>2015-01-28 18:26:15 +0000
commit286f124da5e2ddf7aa1c2303093343b645c213b9 (patch)
treef668aba495956f94b869ffb99fc4b891fc80ab3a
parent39b846ce0f72a9d460725385c8774dba4f707852 (diff)
downloadbcm5719-llvm-286f124da5e2ddf7aa1c2303093343b645c213b9.tar.gz
bcm5719-llvm-286f124da5e2ddf7aa1c2303093343b645c213b9.zip
Enable pragma comment processing for PS4. Original patch by Yunzhong Gao!
llvm-svn: 227336
-rw-r--r--clang/lib/Parse/ParsePragma.cpp6
-rw-r--r--clang/test/CodeGen/pragma-comment.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index 473be5467ee..5f89f01598d 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -219,6 +219,9 @@ void Parser::initializePragmaHandlers() {
PP.AddPragmaHandler(MSCodeSeg.get());
MSSection.reset(new PragmaMSPragma("section"));
PP.AddPragmaHandler(MSSection.get());
+ } else if (getTargetInfo().getTriple().isPS4()) {
+ MSCommentHandler.reset(new PragmaCommentHandler(Actions));
+ PP.AddPragmaHandler(MSCommentHandler.get());
}
OptimizeHandler.reset(new PragmaOptimizeHandler(Actions));
@@ -282,6 +285,9 @@ void Parser::resetPragmaHandlers() {
MSCodeSeg.reset();
PP.RemovePragmaHandler(MSSection.get());
MSSection.reset();
+ } else if (getTargetInfo().getTriple().isPS4()) {
+ PP.RemovePragmaHandler(MSCommentHandler.get());
+ MSCommentHandler.reset();
}
PP.RemovePragmaHandler("STDC", FPContractHandler.get());
diff --git a/clang/test/CodeGen/pragma-comment.c b/clang/test/CodeGen/pragma-comment.c
index 221cfc87f91..5869ca85f33 100644
--- a/clang/test/CodeGen/pragma-comment.c
+++ b/clang/test/CodeGen/pragma-comment.c
@@ -1,6 +1,7 @@
// RUN: %clang_cc1 %s -triple i686-pc-win32 -fms-extensions -emit-llvm -o - | FileCheck %s
// RUN: %clang_cc1 %s -triple x86_64-pc-win32 -fms-extensions -emit-llvm -o - | FileCheck %s
// RUN: %clang_cc1 %s -triple i686-pc-linux -fms-extensions -emit-llvm -o - | FileCheck -check-prefix LINUX %s
+// RUN: %clang_cc1 %s -triple x86_64-scei-ps4 -fms-extensions -emit-llvm -o - | FileCheck -check-prefix PS4 %s
#pragma comment(lib, "msvcrt.lib")
#pragma comment(lib, "kernel32")
@@ -21,3 +22,8 @@
// LINUX: !{!"-lkernel32"}
// LINUX: !{!"-lUSER32.LIB"}
// LINUX: !{!" /bar=2"}
+
+// PS4: !{!"\01msvcrt.lib"}
+// PS4: !{!"\01kernel32"}
+// PS4: !{!"\01USER32.LIB"}
+// PS4: !{!" /bar=2"}
OpenPOWER on IntegriCloud