From dd76524d76b75140c5685bcf57c34aa04eb4d9a3 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 26 Mar 2009 16:12:09 +0000 Subject: [PATCH] Driver: Fix a number of option definition mismatches (flags instead of separate, or vice versa). Also, fix initialization of LinkingOutput variable. llvm-svn: 67757 --- clang/include/clang/Driver/Options.def | 19 ++++++++++--------- clang/lib/Driver/Driver.cpp | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/clang/include/clang/Driver/Options.def b/clang/include/clang/Driver/Options.def index 7c98bc06a31d..76fe06d9a8a8 100644 --- a/clang/include/clang/Driver/Options.def +++ b/clang/include/clang/Driver/Options.def @@ -312,7 +312,8 @@ OPTION("-Xlinker", Xlinker, Separate, INVALID, INVALID, "li", 0) OPTION("-Xpreprocessor", Xpreprocessor, Separate, INVALID, INVALID, "", 0) OPTION("-X", X_Flag, Flag, INVALID, INVALID, "", 0) OPTION("-X", X_Joined, Joined, INVALID, INVALID, "", 0) -OPTION("-Z", Z, JoinedOrSeparate, INVALID, INVALID, "", 0) +OPTION("-Z", Z_Flag, Flag, INVALID, INVALID, "", 0) +OPTION("-Z", Z_Joined, Joined, INVALID, INVALID, "", 0) OPTION("-all_load", all__load, Flag, INVALID, INVALID, "", 0) OPTION("-allowable_client", allowable__client, Separate, INVALID, INVALID, "", 0) OPTION("-ansi", ansi, Flag, a_Group, INVALID, "", 0) @@ -430,7 +431,7 @@ OPTION("-g", g_Joined, Joined, g_Group, INVALID, "", 0) OPTION("-headerpad_max_install_names", headerpad__max__install__names, Joined, INVALID, INVALID, "", 0) OPTION("-idirafter", idirafter, JoinedOrSeparate, i_Group, INVALID, "", 0) OPTION("-imacros", imacros, JoinedOrSeparate, i_Group, INVALID, "", 0) -OPTION("-image_base", image__base, Flag, INVALID, INVALID, "", 0) +OPTION("-image_base", image__base, Separate, INVALID, INVALID, "", 0) OPTION("-include", include, JoinedOrSeparate, i_Group, INVALID, "", 0) OPTION("-init", init, Separate, INVALID, INVALID, "", 0) OPTION("-install_name", install__name, Separate, INVALID, INVALID, "", 0) @@ -442,7 +443,7 @@ OPTION("-iwithprefixbefore", iwithprefixbefore, JoinedOrSeparate, i_Group, INVAL OPTION("-iwithprefix", iwithprefix, JoinedOrSeparate, i_Group, INVALID, "", 0) OPTION("-iwithsysroot", iwithsysroot, JoinedOrSeparate, i_Group, INVALID, "", 0) OPTION("-i", i, Joined, i_Group, INVALID, "", 0) -OPTION("-keep_private_externs", keep__private__externs, JoinedOrSeparate, INVALID, INVALID, "", 0) +OPTION("-keep_private_externs", keep__private__externs, Flag, INVALID, INVALID, "", 0) OPTION("-l", l, JoinedOrSeparate, INVALID, INVALID, "l", 0) OPTION("-m32", m32, Flag, m_Group, INVALID, "", 0) OPTION("-m3dnowa", m3dnowa, Flag, m_Group, INVALID, "", 0) @@ -499,7 +500,7 @@ OPTION("-nostdinc", nostdinc, Flag, INVALID, INVALID, "", 0) OPTION("-nostdlib", nostdlib, Flag, INVALID, INVALID, "", 0) OPTION("-object", object, Flag, INVALID, INVALID, "", 0) OPTION("-o", o, JoinedOrSeparate, INVALID, INVALID, "di", 0) -OPTION("-pagezero_size", pagezero__size, Flag, INVALID, INVALID, "", 0) +OPTION("-pagezero_size", pagezero__size, JoinedOrSeparate, INVALID, INVALID, "", 0) OPTION("-pass-exit-codes", pass_exit_codes, Flag, INVALID, INVALID, "", 0) OPTION("-pedantic-errors", pedantic_errors, Flag, pedantic_Group, INVALID, "", 0) OPTION("-pedantic", pedantic, Flag, pedantic_Group, INVALID, "", 0) @@ -530,10 +531,10 @@ OPTION("-sectorder", sectorder, MultiArg, INVALID, INVALID, "", 3) OPTION("-seg1addr", seg1addr, JoinedOrSeparate, INVALID, INVALID, "", 0) OPTION("-seg_addr_table_filename", seg__addr__table__filename, Separate, INVALID, INVALID, "", 0) OPTION("-seg_addr_table", seg__addr__table, Separate, INVALID, INVALID, "", 0) -OPTION("-segaddr", segaddr, Separate, INVALID, INVALID, "", 0) +OPTION("-segaddr", segaddr, MultiArg, INVALID, INVALID, "", 2) OPTION("-segcreate", segcreate, MultiArg, INVALID, INVALID, "", 3) OPTION("-seglinkedit", seglinkedit, Flag, INVALID, INVALID, "", 0) -OPTION("-segprot", segprot, JoinedOrSeparate, INVALID, INVALID, "", 0) +OPTION("-segprot", segprot, MultiArg, INVALID, INVALID, "", 3) OPTION("-segs_read_only_addr", segs__read__only__addr, Separate, INVALID, INVALID, "", 0) OPTION("-segs_read_write_addr", segs__read__write__addr, Separate, INVALID, INVALID, "", 0) OPTION("-segs_read_", segs__read__, Joined, INVALID, INVALID, "", 0) @@ -554,11 +555,11 @@ OPTION("-traditional", traditional, Flag, INVALID, INVALID, "", 0) OPTION("-trigraphs", trigraphs, Flag, INVALID, INVALID, "", 0) OPTION("-twolevel_namespace_hints", twolevel__namespace__hints, Flag, INVALID, INVALID, "", 0) OPTION("-twolevel_namespace", twolevel__namespace, Flag, INVALID, INVALID, "", 0) -OPTION("-t", t, JoinedOrSeparate, INVALID, INVALID, "", 0) -OPTION("-umbrella", umbrella, Separate, u_Group, INVALID, "", 0) +OPTION("-t", t, Flag, INVALID, INVALID, "", 0) +OPTION("-umbrella", umbrella, Separate, INVALID, INVALID, "", 0) OPTION("-undefined", undefined, JoinedOrSeparate, u_Group, INVALID, "", 0) OPTION("-undef", undef, Flag, u_Group, INVALID, "", 0) -OPTION("-unexported_symbols_list", unexported__symbols__list, Separate, u_Group, INVALID, "", 0) +OPTION("-unexported_symbols_list", unexported__symbols__list, Separate, INVALID, INVALID, "", 0) OPTION("-u", u, JoinedOrSeparate, u_Group, INVALID, "", 0) OPTION("-v", v, Flag, INVALID, INVALID, "", 0) OPTION("-weak-l", weak_l, Joined, INVALID, INVALID, "l", 0) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 94b33ff61fd9..6202702f097c 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -547,7 +547,7 @@ void Driver::BuildActions(const ArgList &Args, ActionList &Actions) const { // Reject -Z* at the top level, these options should never have been // exposed by gcc. - if (Arg *A = Args.getLastArg(options::OPT_Z)) + if (Arg *A = Args.getLastArg(options::OPT_Z_Joined)) Diag(clang::diag::err_drv_use_of_Z_option) << A->getAsString(Args); // Construct the actions to perform. @@ -693,7 +693,7 @@ void Driver::BuildJobs(Compilation &C) const { // FIXME: This is a hack; find a cleaner way to integrate this // into the process. const char *LinkingOutput = 0; - if (isa(A)) { + if (isa(A)) { if (FinalOutput) LinkingOutput = FinalOutput->getValue(C.getArgs()); else