From 46227b4ea846f0cf0c4692cb6778f6738b32e65b Mon Sep 17 00:00:00 2001 From: Alex Rosenberg Date: Wed, 28 Jan 2015 18:26:15 +0000 Subject: [PATCH] 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 --- lib/Parse/ParsePragma.cpp | 6 ++++++ test/CodeGen/pragma-comment.c | 6 ++++++ 2 files changed, 12 insertions(+) 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"} -- 2.40.0