From: Alex Rosenberg Date: Wed, 28 Jan 2015 18:26:15 +0000 (+0000) Subject: Enable pragma comment processing for PS4. Original patch by Yunzhong Gao! X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=46227b4ea846f0cf0c4692cb6778f6738b32e65b;p=clang Enable pragma comment processing for PS4. Original patch by Yunzhong Gao! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@227336 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParsePragma.cpp b/lib/Parse/ParsePragma.cpp index 473be5467e..5f89f01598 100644 --- a/lib/Parse/ParsePragma.cpp +++ b/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/test/CodeGen/pragma-comment.c b/test/CodeGen/pragma-comment.c index 221cfc87f9..5869ca85f3 100644 --- a/test/CodeGen/pragma-comment.c +++ b/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"}