diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-03-18 19:41:18 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-03-18 19:41:18 +0000 |
commit | 51be73daa9df0b9eab157318a9274ebe3e46c627 (patch) | |
tree | b05a394e9004e94ed4fa8a527f24e2d2a00e9aa1 | |
parent | f3260565f46491a0d99e41d47a13767218242ce5 (diff) |
Objective-C modern translator. Don't put line info
into the pre-preprocessed file to be passed to
modern translator when compiling in no debug mode.
// rdar://13138170
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177311 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Driver/Tools.cpp | 6 | ||||
-rw-r--r-- | test/Rewriter/rewrite-line-directive.m | 18 |
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 97aa3155b9..4db492a13a 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1777,8 +1777,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } else if (isa<PreprocessJobAction>(JA)) { if (Output.getType() == types::TY_Dependencies) CmdArgs.push_back("-Eonly"); - else + else { CmdArgs.push_back("-E"); + if (Args.hasArg(options::OPT_rewrite_objc) && + !Args.hasArg(options::OPT_g_Group)) + CmdArgs.push_back("-P"); + } } else if (isa<AssembleJobAction>(JA)) { CmdArgs.push_back("-emit-obj"); diff --git a/test/Rewriter/rewrite-line-directive.m b/test/Rewriter/rewrite-line-directive.m new file mode 100644 index 0000000000..5c4e9574c1 --- /dev/null +++ b/test/Rewriter/rewrite-line-directive.m @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -E %s -o %t.mm +// RUN: %clang -fms-extensions -rewrite-objc %t.mm -o %t-rw.cpp +// RUN: FileCheck -check-prefix LP --input-file=%t-rw.cpp %s +// RUN: %clang -g -fms-extensions -rewrite-objc %t.mm -o %t-rw.cpp +// RUN: FileCheck -check-prefix LPG --input-file=%t-rw.cpp %s +// rdar://13138170 + +int z(); + +int x() { + id foo; + for (id y in foo) { + z(); + } + return 0; +} +// CHECK-LP-NOT: #line +// CHECK-LPG: #line |