Skip to content

Commit

Permalink
[clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (…
Browse files Browse the repository at this point in the history
…NFC)

Reviewed By: Bigcheese, dexonsmith

Original patch by Daniel Grumberg.

Differential Revision: https://reviews.llvm.org/D83211
  • Loading branch information
jansvoboda11 committed Dec 1, 2020
1 parent 424fdbc commit 9738436
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions clang/lib/Frontend/CompilerInvocation.cpp
Expand Up @@ -4062,24 +4062,28 @@ std::string CompilerInvocation::getModuleHash() const {

void CompilerInvocation::generateCC1CommandLine(
SmallVectorImpl<const char *> &Args, StringAllocator SA) const {
// Capture the extracted value as a lambda argument to avoid potential issues
// with lifetime extension of the reference.
#define OPTION_WITH_MARSHALLING( \
PREFIX_TYPE, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES, SPELLING, ALWAYS_EMIT, KEYPATH, DEFAULT_VALUE, \
NORMALIZER, DENORMALIZER, MERGER, EXTRACTOR, TABLE_INDEX) \
if (((FLAGS) & options::CC1Option) && \
(ALWAYS_EMIT || EXTRACTOR(this->KEYPATH) != (DEFAULT_VALUE))) { \
DENORMALIZER(Args, SPELLING, SA, TABLE_INDEX, EXTRACTOR(this->KEYPATH)); \
if ((FLAGS)&options::CC1Option) { \
[&](const auto &Extracted) { \
if (ALWAYS_EMIT || Extracted != (DEFAULT_VALUE)) \
DENORMALIZER(Args, SPELLING, SA, TABLE_INDEX, Extracted); \
}(EXTRACTOR(this->KEYPATH)); \
}

#define OPTION_WITH_MARSHALLING_BOOLEAN( \
PREFIX_TYPE, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES, SPELLING, ALWAYS_EMIT, KEYPATH, DEFAULT_VALUE, \
NORMALIZER, DENORMALIZER, MERGER, EXTRACTOR, TABLE_INDEX, NEG_ID, \
NEG_SPELLING) \
if (((FLAGS)&options::CC1Option) && \
(ALWAYS_EMIT || EXTRACTOR(this->KEYPATH) != DEFAULT_VALUE)) { \
DENORMALIZER(Args, SPELLING, NEG_SPELLING, SA, TABLE_INDEX, \
EXTRACTOR(this->KEYPATH)); \
if ((FLAGS)&options::CC1Option) { \
bool Extracted = EXTRACTOR(this->KEYPATH); \
if (ALWAYS_EMIT || Extracted != (DEFAULT_VALUE)) \
DENORMALIZER(Args, SPELLING, NEG_SPELLING, SA, TABLE_INDEX, Extracted); \
}

#include "clang/Driver/Options.inc"
Expand Down

0 comments on commit 9738436

Please sign in to comment.