From 286f124da5e2ddf7aa1c2303093343b645c213b9 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! llvm-svn: 227336 --- clang/lib/Parse/ParsePragma.cpp | 6 ++++++ clang/test/CodeGen/pragma-comment.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 473be54..5f89f01 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 221cfc8..5869ca8 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"} -- 2.7.4