Enable pragma comment processing for PS4. Original patch by Yunzhong Gao!
authorAlex Rosenberg <alexr@leftfield.org>
Wed, 28 Jan 2015 18:26:15 +0000 (18:26 +0000)
committerAlex Rosenberg <alexr@leftfield.org>
Wed, 28 Jan 2015 18:26:15 +0000 (18:26 +0000)
llvm-svn: 227336

clang/lib/Parse/ParsePragma.cpp
clang/test/CodeGen/pragma-comment.c

index 473be54..5f89f01 100644 (file)
@@ -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());
index 221cfc8..5869ca8 100644 (file)
@@ -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"}