summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-06-06 08:21:31 +0000
committered <ed@FreeBSD.org>2009-06-06 08:21:31 +0000
commit265c92560db8af7e64dc328cb612076086a62bd1 (patch)
tree06d57bb7679a2140aef96db7105a0bd5f16a4358 /tools
parent9e262ca77e924f9d84a864b031a1b931d03c5e38 (diff)
downloadFreeBSD-src-265c92560db8af7e64dc328cb612076086a62bd1.zip
FreeBSD-src-265c92560db8af7e64dc328cb612076086a62bd1.tar.gz
Import clang, at r72995.
Diffstat (limited to 'tools')
-rw-r--r--tools/clang-cc/clang-cc.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp
index 0e0a072..f38c6bd 100644
--- a/tools/clang-cc/clang-cc.cpp
+++ b/tools/clang-cc/clang-cc.cpp
@@ -328,6 +328,11 @@ MessageLength("fmessage-length",
"within N columns or fewer, when possible."),
llvm::cl::value_desc("N"));
+static llvm::cl::opt<bool>
+NoColorDiagnostic("fno-color-diagnostics",
+ llvm::cl::desc("Don't use colors when showing diagnostics "
+ "(automatically turned off if output is not a "
+ "terminal)."));
//===----------------------------------------------------------------------===//
// C++ Visualization.
//===----------------------------------------------------------------------===//
@@ -649,6 +654,9 @@ NeXTRuntime("fnext-runtime",
llvm::cl::desc("Generate output compatible with the NeXT "
"runtime"));
+static llvm::cl::opt<bool>
+CharIsSigned("fsigned-char",
+ llvm::cl::desc("Force char to be a signed/unsigned type"));
static llvm::cl::opt<bool>
@@ -807,6 +815,8 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
Options.Exceptions = Exceptions;
if (EnableBlocks.getPosition())
Options.Blocks = EnableBlocks;
+ if (CharIsSigned.getPosition())
+ Options.CharIsSigned = CharIsSigned;
if (!AllowBuiltins)
Options.NoBuiltin = 1;
@@ -1390,6 +1400,17 @@ TargetCPU("mcpu",
static llvm::cl::list<std::string>
TargetFeatures("target-feature", llvm::cl::desc("Target specific attributes"));
+
+static llvm::cl::opt<bool>
+DisableRedZone("disable-red-zone",
+ llvm::cl::desc("Do not emit code that uses the red zone."),
+ llvm::cl::init(false));
+
+static llvm::cl::opt<bool>
+NoImplicitFloat("no-implicit-float",
+ llvm::cl::desc("Don't generate implicit floating point instructions (x86-only)"),
+ llvm::cl::init(false));
+
/// ComputeTargetFeatures - Recompute the target feature list to only
/// be the list of things that are enabled, based on the target cpu
/// and feature list.
@@ -1466,6 +1487,9 @@ static void InitializeCompileOptions(CompileOptions &Opts,
// Handle -ftime-report.
Opts.TimePasses = TimeReport;
+
+ Opts.DisableRedZone = DisableRedZone;
+ Opts.NoImplicitFloat = NoImplicitFloat;
}
//===----------------------------------------------------------------------===//
@@ -2150,6 +2174,10 @@ int main(int argc, char **argv) {
if (MessageLength.getNumOccurrences() == 0)
MessageLength.setValue(llvm::sys::Process::StandardErrColumns());
+ if (!NoColorDiagnostic) {
+ NoColorDiagnostic.setValue(!llvm::sys::Process::StandardErrHasColors());
+ }
+
DiagClient.reset(new TextDiagnosticPrinter(llvm::errs(),
!NoShowColumn,
!NoCaretDiagnostics,
@@ -2157,7 +2185,8 @@ int main(int argc, char **argv) {
PrintSourceRangeInfo,
PrintDiagnosticOption,
!NoDiagnosticsFixIt,
- MessageLength));
+ MessageLength,
+ !NoColorDiagnostic));
} else {
DiagClient.reset(CreateHTMLDiagnosticClient(HTMLDiag));
}
OpenPOWER on IntegriCloud