]> granicus.if.org Git - clang/log
clang
10 years agoFix Clang install rules to not set permissions on include/
NAKAMURA Takumi [Mon, 10 Feb 2014 10:51:09 +0000 (10:51 +0000)]
Fix Clang install rules to not set permissions on include/

The CMake install(DIRECTORY) command documents that it sets permissions
on directories it is asked to install.  Since the <prefix>/include
directory may not be exclusive to the LLVM/Clang installation, we should
not ask CMake to manage permissions of that directory for us.  Instead,
give only our own include/clang and include/clang-c subdirectories to
the install(DIRECTORY) command.

Fixes PR4500. Patch by Brad King.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201076 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[CMake] add_clang_library(): Use llvm_add_library.
NAKAMURA Takumi [Mon, 10 Feb 2014 09:05:28 +0000 (09:05 +0000)]
[CMake] add_clang_library(): Use llvm_add_library.

CMAKE_MODULE_LINKER_FLAGS can be removed since llvm_add_library(MODULE) adds same flags to MODULE.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201073 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18685: Ignore class template specializations as potential
Kaelyn Uhrain [Sun, 9 Feb 2014 21:47:04 +0000 (21:47 +0000)]
PR18685: Ignore class template specializations as potential
nested-name-specifiers for typos unless the typo already has
a nested-name-specifier that is a template specialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201056 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[libclang] While visiting a C++ destructor decl, keep the type identifier associated...
Argyrios Kyrtzidis [Sun, 9 Feb 2014 08:13:47 +0000 (08:13 +0000)]
[libclang] While visiting a C++ destructor decl, keep the type identifier associated with the decl,
don't turn it into a type ref.

rdar://15907618

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201042 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClarify comment. Remove braces from single-statement block.
David Blaikie [Sun, 9 Feb 2014 07:24:41 +0000 (07:24 +0000)]
Clarify comment. Remove braces from single-statement block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201040 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImprove diagnostic for using non-class/namespace/scoped enum in a nested name specifier.
David Blaikie [Sun, 9 Feb 2014 06:54:23 +0000 (06:54 +0000)]
Improve diagnostic for using non-class/namespace/scoped enum in a nested name specifier.

Rather than simply saying "X is not a class or namespace", clarify what
X is by providing the aka type in the case where X is a type, or
pointing to the named declaration if there's an unambiguous one to refer
to. In the ambiguous case, the ambiguities are already enumerated
(though could be clarified by describing what kind of entities they are)

Included a few FIXMEs in tests where some further improvements could be
made.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201038 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPreprocessor: Add __ALIGNOF_MAX_ALIGN_T__
David Majnemer [Sun, 9 Feb 2014 05:30:48 +0000 (05:30 +0000)]
Preprocessor: Add __ALIGNOF_MAX_ALIGN_T__

TargetInfo::getSuitableAlign() was introduced in r146762 and is defined
as alignof(std::max_align_t).

Introduce __ALIGNOF_MAX_ALIGN_T__ which exposes getSuitableAlign() so
that libc++ may take advantage of it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201037 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR16519, PR18009: When checking a partial specialization for uses of its own
Richard Smith [Sun, 9 Feb 2014 00:54:43 +0000 (00:54 +0000)]
PR16519, PR18009: When checking a partial specialization for uses of its own
template parameters, don't look for parameters of outer templates. If a problem
is found in a default template argument, point the diagnostic at the partial
specialization (with a note pointing at the default argument) instead of
pointing it at the default argument and leaving it unclear which partial
specialization os problematic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201031 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agotype_info objects are not unnamed_addr: the ABI requires us to
John McCall [Sat, 8 Feb 2014 03:26:05 +0000 (03:26 +0000)]
type_info objects are not unnamed_addr: the ABI requires us to
unique them and permits the implementation of dynamic_cast (and
anything else which knows it's working with a complete class
type) to compare their addresses directly.

rdar://16005328

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201020 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMove the -fms-compatibility using decl check after real access checking
Reid Kleckner [Sat, 8 Feb 2014 02:40:20 +0000 (02:40 +0000)]
Move the -fms-compatibility using decl check after real access checking

Summary:
This avoids false positives from -Wmicrosoft when name lookup would
normally succeed in standard C++.  This triggered on a common CRTP
pattern in clang, where a derived class would have a private using decl
to pull in members of a dependent base:

class Verifier : InstVisitor<Verifier> {
private:
  using InstVisitor<Verifier>::visit;
  ...
  void anything() {
    visit(); // warned here
  }
};

Real access checks pass here because we're in the context of the
Verifier, but the -Wmicrosoft extension was just looking for the private
access specifier.

Reviewers: rsmith

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2679

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201019 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18581: Attempt to complete the type in a VLA declaration before checking
Richard Smith [Sat, 8 Feb 2014 02:30:49 +0000 (02:30 +0000)]
PR18581: Attempt to complete the type in a VLA declaration before checking
whether it's POD.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201018 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-cl: Alias /Zi and /Z7 to -gline-tables-only
Reid Kleckner [Sat, 8 Feb 2014 01:43:16 +0000 (01:43 +0000)]
clang-cl: Alias /Zi and /Z7 to -gline-tables-only

LLVM only knows how to emit Z7-style line tables on -win32, so there's
no reason for clang to emit anything other than line info.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201017 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Use the most recent decl to check the inheritance model
Reid Kleckner [Sat, 8 Feb 2014 01:15:37 +0000 (01:15 +0000)]
MS ABI: Use the most recent decl to check the inheritance model

This was crashing compilation of DeclContext::buildLookupImpl<>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201013 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix lifetime issue causing buildbot failures.
Richard Smith [Sat, 8 Feb 2014 00:42:45 +0000 (00:42 +0000)]
Fix lifetime issue causing buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201012 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove the -fhidden-weak-vtables -cc1 option. It was dead,
John McCall [Sat, 8 Feb 2014 00:41:16 +0000 (00:41 +0000)]
Remove the -fhidden-weak-vtables -cc1 option.  It was dead,
gross, and increasingly replaced through other mechanisms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201011 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoASTUnit: remove dead code in remapping files
Dmitri Gribenko [Sat, 8 Feb 2014 00:38:15 +0000 (00:38 +0000)]
ASTUnit: remove dead code in remapping files

ASTUnit contains code to remap files to other files on disk.  This code is not
used.  We only remap files to MemoryBuffers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201010 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Objective-C object literals are always non-nil.
Jordan Rose [Sat, 8 Feb 2014 00:04:14 +0000 (00:04 +0000)]
[analyzer] Objective-C object literals are always non-nil.

<rdar://problem/15999214>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201007 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR16638, DR1552: the exception specification on an implicitly-declared
Richard Smith [Fri, 7 Feb 2014 22:51:16 +0000 (22:51 +0000)]
PR16638, DR1552: the exception specification on an implicitly-declared
'operator delete' or 'operator delete[]' is an explicit exception
specification. Therefore we should diagnose 'void operator delete(void*)'
instead of 'void operator delete(void*) noexcept'.

This diagnostic remains an ExtWarn, since in practice people don't always
include the exception specification in such a declaration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201002 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFold together two repeated identical 'if's.
Richard Smith [Fri, 7 Feb 2014 22:39:53 +0000 (22:39 +0000)]
Fold together two repeated identical 'if's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201000 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix test from r200979 on Windows
Ben Langmuir [Fri, 7 Feb 2014 19:39:50 +0000 (19:39 +0000)]
Fix test from r200979 on Windows

Hopefully the last tweak needed to get this test working everywhere.

Remove matching of the prefix of sys_header.h, which was never the point
of the test anyway.  This avoids dealing with path separators.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200987 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjective-C. Revert patch r193003 for further
Fariborz Jahanian [Fri, 7 Feb 2014 19:25:10 +0000 (19:25 +0000)]
Objective-C. Revert patch r193003 for further
internal discussions. // rdar://16006401

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200986 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix test from r200979 on non-Darwin systems
Ben Langmuir [Fri, 7 Feb 2014 17:56:29 +0000 (17:56 +0000)]
Fix test from r200979 on non-Darwin systems

Add a darwin triple to get the behaviour from isysroot that the test
expects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200982 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Just silence all warnings coming out of std::basic_string.
Jordan Rose [Fri, 7 Feb 2014 17:35:04 +0000 (17:35 +0000)]
[analyzer] Just silence all warnings coming out of std::basic_string.

This means always walking the whole call stack for the end path node, but
we'll assume that's always fairly tractable.

<rdar://problem/15952973>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200980 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoStat system dependencies when using -verify-pch
Ben Langmuir [Fri, 7 Feb 2014 17:31:11 +0000 (17:31 +0000)]
Stat system dependencies when using -verify-pch

We don't stat the system headers to check for stalenes during regular
PCH loading for performance reasons.  When explicitly saying
-verify-pch, we want to check all the dependencies - user or system.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200979 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoASTUnit: ArrayRef'ize RemappedFiles
Dmitri Gribenko [Fri, 7 Feb 2014 15:00:22 +0000 (15:00 +0000)]
ASTUnit: ArrayRef'ize RemappedFiles

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200975 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix column limit violation for merged lines in macros.
Daniel Jasper [Fri, 7 Feb 2014 13:45:27 +0000 (13:45 +0000)]
clang-format: Fix column limit violation for merged lines in macros.

Before (81 columns):
  #define A                                                                       \
    void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() { return aaaaaaaa; } \
    int i;

After:
  #define A                                                    \
    void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() { \
      return aaaaaaaa;                                         \
    }                                                          \
    int i;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200974 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix AAPCS compliance for HFAs containing doubles and long doubles
Oliver Stannard [Fri, 7 Feb 2014 11:25:57 +0000 (11:25 +0000)]
Fix AAPCS compliance for HFAs containing doubles and long doubles

An HFA is defined as a struct containing floating point values of the
same machine type. In the 32-bit ABI, double and long double have the
same machine type, so a struct with a mixture of these types must be an
HFA (assuming it meets the other criteria).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200971 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix range-based for-loop formatting.
Daniel Jasper [Fri, 7 Feb 2014 10:09:46 +0000 (10:09 +0000)]
clang-format: Fix range-based for-loop formatting.

Before:
  for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaa.aaaaaaaaaaaa()
           .aaaaaaaaa()
           .a()) {
  }

After:
  for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa :
       aaaaaaaaaaaa.aaaaaaaaaaaa().aaaaaaaaa().a()) {
  }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200968 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDocument return value for FileManager::getNoncachedStatValue()
Dmitri Gribenko [Fri, 7 Feb 2014 09:31:00 +0000 (09:31 +0000)]
Document return value for FileManager::getNoncachedStatValue()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200967 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert r194097: "With this patch -Wwrite-strings is still implemented with the terrible
Argyrios Kyrtzidis [Fri, 7 Feb 2014 08:33:28 +0000 (08:33 +0000)]
Revert r194097: "With this patch -Wwrite-strings is still implemented with the terrible
    hack of passing -fconst-strings to -cc1"

Passing or not a language option based on diagnostic settings is a bad idea, it breaks
using a PCH that was compiled with different diagnostic settings.

Also add a test case to make sure we don't regress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200964 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Don't be so hasty to judge an inheritance model
David Majnemer [Fri, 7 Feb 2014 00:43:07 +0000 (00:43 +0000)]
MS ABI: Don't be so hasty to judge an inheritance model

If we are in the middle of defining the class, don't attempt to
validate previously annotated declarations.  We may not have seen base
specifiers or virtual method declarations yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200959 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTemporary fix for PR18473: Don't try to evaluate the initializer for a
Richard Smith [Thu, 6 Feb 2014 23:35:16 +0000 (23:35 +0000)]
Temporary fix for PR18473: Don't try to evaluate the initializer for a
type-dependent variable, even if the initializer isn't value-dependent. This
happens for ParenListExprs composed of non-value-dependent subexpressions, for
instance.

We should really give ParenListExprs (and InitListExprs) the type of the
initialized entity if they're used to represent a dependent initialization (and
if so, set them to be type-, value- and instantiation-dependent).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200954 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFixes PR18762, stop the StmtPrinter for ObjCPropertyRefExpr from crashing on
Richard Trieu [Thu, 6 Feb 2014 23:26:23 +0000 (23:26 +0000)]
Fixes PR18762, stop the StmtPrinter for ObjCPropertyRefExpr from crashing on
certain receiver types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200953 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd isListInitialization matcher.
Peter Collingbourne [Thu, 6 Feb 2014 21:52:24 +0000 (21:52 +0000)]
Add isListInitialization matcher.

Differential Revision: http://llvm-reviews.chandlerc.com/D2708

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200949 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18128: a lambda capture-default is not permitted for a non-local lambda
Richard Smith [Thu, 6 Feb 2014 21:49:08 +0000 (21:49 +0000)]
PR18128: a lambda capture-default is not permitted for a non-local lambda
expression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200948 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse correct ld emulation for EABI hardware float triple on NetBSD.
Joerg Sonnenberger [Thu, 6 Feb 2014 21:04:32 +0000 (21:04 +0000)]
Use correct ld emulation for EABI hardware float triple on NetBSD.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200946 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix indentation of a code example in LibTooling's documentation.
James Dennett [Thu, 6 Feb 2014 20:16:05 +0000 (20:16 +0000)]
Fix indentation of a code example in LibTooling's documentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200944 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSilence build-bots from the fallout of r200921
David Majnemer [Thu, 6 Feb 2014 19:14:16 +0000 (19:14 +0000)]
Silence build-bots from the fallout of r200921

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200940 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMove -verify-pch to use VerifyJobAction
Ben Langmuir [Thu, 6 Feb 2014 18:53:25 +0000 (18:53 +0000)]
Move -verify-pch to use VerifyJobAction

Use the verify hook rather than the compile hook to represent the
-verify-pch action, and move the exising --verify-debug-info action
into its own subclass of VerifyJobAction.  Incidentally change the name
printed by -ccc-print-phases for --verify-debug-info.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200938 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoWired-up the new LLVM diagnostic system into clang diagnostic system.
Quentin Colombet [Thu, 6 Feb 2014 18:30:43 +0000 (18:30 +0000)]
Wired-up the new LLVM diagnostic system into clang diagnostic system.
The approach is similar to the existing inline-asm reporting, just more
general.

<rdar://problem/15886278>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200931 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Handle indirect field decls in template args
David Majnemer [Thu, 6 Feb 2014 12:46:52 +0000 (12:46 +0000)]
MS ABI: Handle indirect field decls in template args

Properly support fields that come from anonymous unions and structs
when used as template arguments for pointer to data member params.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200921 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Tweak pointer-to-member mangling/inheritance model selection
David Majnemer [Thu, 6 Feb 2014 10:59:19 +0000 (10:59 +0000)]
MS ABI: Tweak pointer-to-member mangling/inheritance model selection

Properly determine the inheritance model when dealing with nullptr:
- If a nullptr template argument is being checked against
  pointer-to-member parameter, nail down an inheritance model.
  N.B. We will chose an inheritance model even if we won't ultimately
  choose the template to instantiate!  Cooky, right?
- Null pointer-to-datamembers have a virtual base table offset of -1,
  not zero. Previously, we chose an offset of 0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200920 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agocheck-clang: Introduce the feature "utf8-capable-terminal".
NAKAMURA Takumi [Thu, 6 Feb 2014 07:15:59 +0000 (07:15 +0000)]
check-clang: Introduce the feature "utf8-capable-terminal".

clang/test/FixIt/fixit-unicode-with-utf8-output.c has begun complained since LLVM r200885.
Although it is changes for StringRef, it brought LLVM_ON_WIN32 to Support/Locale.cpp.

Before r200885, LLVM_ON_WIN32 was undefined in Locale.cpp!

FIXME: We should consider i18n on win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200909 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAllow transformation of VariableArray to ConstantArray.
Serge Pavlov [Thu, 6 Feb 2014 03:49:11 +0000 (03:49 +0000)]
Allow transformation of VariableArray to ConstantArray.

In the following code:

    struct A { static const int sz; };
    template<class T> void f() { T arr[A::sz]; }

the array 'arr' is represented as a variable size array in the template.
If 'A::sz' gets value below in the translation unit, the array in
instantiation can turn into constant size array.

This change fixes PR18633.

Differential Revision: http://llvm-reviews.chandlerc.com/D2688

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200899 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDR101, PR12770: If a function is declared in the same context as a
Richard Smith [Thu, 6 Feb 2014 01:31:33 +0000 (01:31 +0000)]
DR101, PR12770: If a function is declared in the same context as a
using-declaration, and they declare the same function (either because
the using-declaration is in the same namespace as the declaration it
imports, or because they're both extern "C"), they do not conflict.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200897 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplify code by combining ifs.
Manman Ren [Thu, 6 Feb 2014 00:08:15 +0000 (00:08 +0000)]
Simplify code by combining ifs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200893 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix Werror introduced at r200874.
Manman Ren [Thu, 6 Feb 2014 00:03:20 +0000 (00:03 +0000)]
Fix Werror introduced at r200874.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200891 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix -Wunused-variable 'FD' by using it instead of ND when they're equal but FD
Nick Lewycky [Wed, 5 Feb 2014 23:53:29 +0000 (23:53 +0000)]
Fix -Wunused-variable 'FD' by using it instead of ND when they're equal but FD
has a more precise type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200889 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd a CC1 option -verify-pch
Ben Langmuir [Wed, 5 Feb 2014 22:21:15 +0000 (22:21 +0000)]
Add a CC1 option -verify-pch

This option will:
- load the given pch file
- verify it is not out of date by stat'ing dependencies, and
- return 0 on success and non-zero on error

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200884 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTry to fix ppc bot failure.
Manman Ren [Wed, 5 Feb 2014 21:40:10 +0000 (21:40 +0000)]
Try to fix ppc bot failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200880 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClean up some particularly ugly casting.
Benjamin Kramer [Wed, 5 Feb 2014 21:29:05 +0000 (21:29 +0000)]
Clean up some particularly ugly casting.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200877 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoChanged OptionCategory variables to be static.
Alexander Kornienko [Wed, 5 Feb 2014 21:28:03 +0000 (21:28 +0000)]
Changed OptionCategory variables to be static.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200876 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPGO: instrumentation based profiling sets function attributes.
Manman Ren [Wed, 5 Feb 2014 20:40:15 +0000 (20:40 +0000)]
PGO: instrumentation based profiling sets function attributes.

We collect a maximal function count among all functions in the pgo data file.
For functions that are hot, we set its InlineHint attribute. For functions that
are cold, we set its Cold attribute.

We currently treat functions with >= 30% of the maximal function count as hot
and functions with <= 1% of the maximal function count are treated as cold.
These two numbers are from preliminary tuning on SPEC.

This commit should not affect non-PGO builds and should boost performance on
instrumentation based PGO.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200874 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Fix mangling of static methods and function references
Reid Kleckner [Wed, 5 Feb 2014 18:59:38 +0000 (18:59 +0000)]
MS ABI: Fix mangling of static methods and function references

Function references always use $1? like function pointers and never $E?
like var decl references.  Static methods are mangled like function
pointers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200869 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDon't consider records with a NULL identifier as a name for typo correction.
Kaelyn Uhrain [Wed, 5 Feb 2014 18:57:51 +0000 (18:57 +0000)]
Don't consider records with a NULL identifier as a name for typo correction.

Because in C++, "anonymous" doesn't mean "nameless" for records. In
other words, RecordDecl::isAnonymousStructOrUnion only returns true if
the record lacks a name *and* is not used as the type in an object's
declaration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200868 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate for llvm api change.
Rafael Espindola [Wed, 5 Feb 2014 18:00:26 +0000 (18:00 +0000)]
Update for llvm api change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200863 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused variable to fix -Werror build
Reid Kleckner [Wed, 5 Feb 2014 18:00:01 +0000 (18:00 +0000)]
Remove unused variable to fix -Werror build

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200861 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Mangle member pointer template arguments
Reid Kleckner [Wed, 5 Feb 2014 17:27:08 +0000 (17:27 +0000)]
MS ABI: Mangle member pointer template arguments

Member pointers are mangled as they would be represented at runtime.
They can be a single integer literal, single decl, or a tuple with some
more numbers tossed in.  With Clang today, most of those numbers will be
zero because we reject pointers to members of virtual bases.

This change required moving VTableContextBase ownership from
CodeGenVTables to ASTContext, because mangling now depends on vtable
layout.

I also hoisted the inheritance model helpers up to be inline static
methods of MSInheritanceAttr.  This makes the AST code that deals with
member pointers much more readable.

MSVC doesn't appear to have stable manglings of null member pointers:
- Null data memptrs in function templates have a mangling collision with
  the first field of a non-polymorphic single inheritance class.
- The mangling of null data memptrs changes if you add casts.
- Large null function memptrs in class templates crash MSVC.

Clang uses the class template mangling for null data memptrs and the
function template mangling for null function memptrs to deal with this.

Reviewers: majnemer

Differential Revision: http://llvm-reviews.chandlerc.com/D2695

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200857 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjective-C driver. Do not use legacy dispatch for
Fariborz Jahanian [Wed, 5 Feb 2014 17:13:42 +0000 (17:13 +0000)]
Objective-C driver. Do not use legacy dispatch for
10.5 or less for x86_64 arch. // rdar://15852259

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200854 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdded the hasLoopVariable sub-matcher for forRangeStmt.
Alexander Kornienko [Wed, 5 Feb 2014 16:35:08 +0000 (16:35 +0000)]
Added the hasLoopVariable sub-matcher for forRangeStmt.

Summary:
This sub-matcher makes it possible to access directly the range-based for
loop variable: forRangeStmt(hasLoopVariable(anything()).bind(...)).
I've tried to re-generate the docs, but the diffs seem to include much more than
this change could cause, so I'd better leave docs update to someone who knows
the intended changes in the contents better.

Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2702

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200850 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix the range for Malayam UCNs in C99.
Joey Gouly [Wed, 5 Feb 2014 15:32:23 +0000 (15:32 +0000)]
Fix the range for Malayam UCNs in C99.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200845 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Don't indent relative to unary operators.
Daniel Jasper [Wed, 5 Feb 2014 13:43:04 +0000 (13:43 +0000)]
clang-format: Don't indent relative to unary operators.

It seems like most people see unary operators more like part of the
subsequent identifier and find relative indentation odd.

Before:
  aaaaaaaaaa(!aaaaaaaaaa( // break
                  aaaaa));
After:
  aaaaaaaaaa(!aaaaaaaaaa( // break
                 aaaaa));

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200840 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMake the OptionCategory variable static.
Alexander Kornienko [Wed, 5 Feb 2014 13:42:43 +0000 (13:42 +0000)]
Make the OptionCategory variable static.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200839 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix typo in CastExpr::getCastKindName.
Jordan Rose [Wed, 5 Feb 2014 03:49:45 +0000 (03:49 +0000)]
Fix typo in CastExpr::getCastKindName.

Patch by Mathieu Baudet!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200817 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDon't mark decls with mismatching exception specs invalid in MS mode (PR18683)
Hans Wennborg [Wed, 5 Feb 2014 02:37:58 +0000 (02:37 +0000)]
Don't mark decls with mismatching exception specs invalid in MS mode (PR18683)

We accept these with a warning in MS mode, but we would previously mark them
invalid, causing us not to emit code for them.

Differential Revision: http://llvm-reviews.chandlerc.com/D2681

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200815 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTighten lax vector-conversion rules and enforce them consistently.
John McCall [Tue, 4 Feb 2014 23:58:19 +0000 (23:58 +0000)]
Tighten lax vector-conversion rules and enforce them consistently.

When a lax conversion featured a vector and a non-vector, we were
only requiring the non-vector to be a scalar type, but really it
needs to be a real type (i.e. integral or real floating); it is
not reasonable to allow a pointer, member pointer, or complex
type here.

r198474 required lax conversions to match in "data size", i.e.
element size * element count, forbidding matches that happen
only because a vector is rounded up to the nearest power of two
in size.  Unfortunately, the erroneous logic was repeated in
several different places; unify them to use the new condition,
so that it triggers for arbitrary conversions and not just
those performed as part of binary operator checking.

rdar://15931426

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200810 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFurther simplify r200797 and add an explanatory comment.
David Blaikie [Tue, 4 Feb 2014 23:46:16 +0000 (23:46 +0000)]
Further simplify r200797 and add an explanatory comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200805 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplify testcase from r200797 some more.
Adrian Prantl [Tue, 4 Feb 2014 21:50:56 +0000 (21:50 +0000)]
Simplify testcase from r200797 some more.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200798 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebug info: fix a crasher when when emitting debug info for
Adrian Prantl [Tue, 4 Feb 2014 21:29:50 +0000 (21:29 +0000)]
Debug info: fix a crasher when when emitting debug info for
not-yet-completed templated types. getTypeSize() needs a complete type.

rdar://problem/15931354

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200797 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClean up whitespace checks
Justin Bogner [Tue, 4 Feb 2014 19:18:37 +0000 (19:18 +0000)]
Clean up whitespace checks

In TokenLexer::ExpandFunctionArguments(), CurTok.hasLeadingSpace() is
checked in multiple locations, each time subtly differently. Checking it
early, when the token is seen, and using NextTokGetsSpace exclusively
after that makes the code simpler.

No change in behaviour is intended.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200788 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix whitespace handling in empty macro expansions
Justin Bogner [Tue, 4 Feb 2014 19:18:35 +0000 (19:18 +0000)]
Fix whitespace handling in empty macro expansions

When a macro expansion does not result in any tokens, and the macro name
is preceded by whitespace, the whitespace should be passed to the first
token that follows the macro expansion. Similarly when a macro expansion
ends with a placemarker token, and that placemarker token is preceded by
whitespace. This worked already for top-level macro expansions, but is
now extended to also work for nested macro expansions.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200787 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix whitespace handling in empty macro arguments
Justin Bogner [Tue, 4 Feb 2014 19:18:32 +0000 (19:18 +0000)]
Fix whitespace handling in empty macro arguments

When a function-like macro definition ends with one of the macro's
parameters, and the argument is empty, any whitespace before the
parameter name in the macro definition needs to be preserved. Promoting
the existing NextTokGetsSpace to a preserved bit-field and checking it
at the end of the macro expansion allows it to be moved to the first
token following the macro expansion result.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200786 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix whitespace handling in ## operator
Justin Bogner [Tue, 4 Feb 2014 19:18:28 +0000 (19:18 +0000)]
Fix whitespace handling in ## operator

In x ## y, where x and y are regular tokens, whitespace between x and ##
is ignored, and whitespace between ## and y is also ignored. When either
x or y is a function argument, whitespace was preserved, but it should
not be. This patch removes the checks for whitespace before ## and
before y, and in the special case where x is an empty macro argument and
y is a regular token, actively removes whitespace before y.

One existing test is affected by that change, but as clang's output now
matches the standard's requirements and that of GCC, I've tweaked the
testcase.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200785 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM & AArch64: combine implementation of vcaXYZ intrinsics
Tim Northover [Tue, 4 Feb 2014 14:55:52 +0000 (14:55 +0000)]
ARM & AArch64: combine implementation of vcaXYZ intrinsics

Now that the back-end intrinsics are more regular, there's no need for the
special handling these got in the front-end, so they can be moved to
EmitCommonNeonBuiltinExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200769 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[CMake] add_clang_library(): Fix LLVM_PLUGIN_EXT in MODULE. It was broken since my...
NAKAMURA Takumi [Tue, 4 Feb 2014 12:26:48 +0000 (12:26 +0000)]
[CMake] add_clang_library(): Fix LLVM_PLUGIN_EXT in MODULE. It was broken since my r199902.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200760 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[CMake] add_clang_library(): Honor STATIC.
NAKAMURA Takumi [Tue, 4 Feb 2014 12:26:40 +0000 (12:26 +0000)]
[CMake] add_clang_library(): Honor STATIC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200759 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd implicit declarations of allocation functions when looking them up for
Richard Smith [Tue, 4 Feb 2014 01:14:30 +0000 (01:14 +0000)]
Add implicit declarations of allocation functions when looking them up for
redeclaration, not just when looking them up for a use -- we need the implicit
declaration to appropriately check various properties of them (notably, whether
they're deleted).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200729 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTidy up and reduce some comment redundancy.
Richard Smith [Mon, 3 Feb 2014 23:22:05 +0000 (23:22 +0000)]
Tidy up and reduce some comment redundancy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200723 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebugInfo: Fix for an improvement to DIBuilder to not emit {i32 0} for zero-length...
David Blaikie [Mon, 3 Feb 2014 23:08:59 +0000 (23:08 +0000)]
DebugInfo: Fix for an improvement to DIBuilder to not emit {i32 0} for zero-length arrays.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200722 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a -Wmicrosoft warning about an unrepresentable enum value
Reid Kleckner [Mon, 3 Feb 2014 22:20:34 +0000 (22:20 +0000)]
Fix a -Wmicrosoft warning about an unrepresentable enum value

In MSVC, enums are always signed unless you explicitly specify the type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200719 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a -Wformat warning in ASTUnit.cpp
Reid Kleckner [Mon, 3 Feb 2014 22:20:24 +0000 (22:20 +0000)]
Fix a -Wformat warning in ASTUnit.cpp

llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because
that's what InterlockedIncrement is defined to accept.

I still don't know if we should be calling fprintf from ASTUnit.cpp
behind a getenv check.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200718 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR17846, PR17848: don't build a VarTemplateSpecializationDecl for a use of a
Richard Smith [Mon, 3 Feb 2014 20:09:56 +0000 (20:09 +0000)]
PR17846, PR17848: don't build a VarTemplateSpecializationDecl for a use of a
variable template until we know what the template arguments actually are.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200714 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[ms-cxxabi] Fix cast when structor replacement is an alias
Reid Kleckner [Mon, 3 Feb 2014 18:54:51 +0000 (18:54 +0000)]
[ms-cxxabi] Fix cast when structor replacement is an alias

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200711 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAllow specifying a custom PathDiagnosticConsumer for use with the static analyzer.
Alexander Kornienko [Mon, 3 Feb 2014 18:37:50 +0000 (18:37 +0000)]
Allow specifying a custom PathDiagnosticConsumer for use with the static analyzer.

Summary:
Make objects returned by CreateAnalysisConsumer expose an interface,
that allows providing a custom PathDiagnosticConsumer, so that users can have
raw data in a form easily usable from the code (unlike plist/HTML in a file).

Reviewers: jordan_rose, krememek

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2556

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200710 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTest cases for NetBSD/eARM
Joerg Sonnenberger [Mon, 3 Feb 2014 17:46:52 +0000 (17:46 +0000)]
Test cases for NetBSD/eARM

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200709 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: implement support for crypto intrinsics in arm_neon.h
Tim Northover [Mon, 3 Feb 2014 17:28:04 +0000 (17:28 +0000)]
ARM: implement support for crypto intrinsics in arm_neon.h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200708 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAArch64: use new non-polymorphic crypto intrinsics
Tim Northover [Mon, 3 Feb 2014 17:28:00 +0000 (17:28 +0000)]
AArch64: use new non-polymorphic crypto intrinsics

The LLVM backend now has invariant types on the various crypto-intrinsics,
because in all cases there's only really one interpretation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200707 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix handling of -fno-function-sections, -fno-data-sections in clang driver.
Evgeniy Stepanov [Mon, 3 Feb 2014 11:11:37 +0000 (11:11 +0000)]
Fix handling of -fno-function-sections, -fno-data-sections in clang driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200685 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix typo 'uusal'.
Richard Smith [Mon, 3 Feb 2014 07:04:10 +0000 (07:04 +0000)]
Fix typo 'uusal'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200681 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix typo in CSS class name.
Richard Smith [Mon, 3 Feb 2014 07:02:19 +0000 (07:02 +0000)]
Fix typo in CSS class name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200680 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClang 3.4 was released, make the boxes green.
Richard Smith [Mon, 3 Feb 2014 06:58:08 +0000 (06:58 +0000)]
Clang 3.4 was released, make the boxes green.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200679 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTests for DR331-350.
Richard Smith [Mon, 3 Feb 2014 06:34:23 +0000 (06:34 +0000)]
Tests for DR331-350.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200678 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate C++ DR page now 3.4 has been released.
Richard Smith [Mon, 3 Feb 2014 02:40:25 +0000 (02:40 +0000)]
Update C++ DR page now 3.4 has been released.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200674 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImplement DR329. We already did the right thing here in C++98 mode, but r104014
Richard Smith [Mon, 3 Feb 2014 02:37:59 +0000 (02:37 +0000)]
Implement DR329. We already did the right thing here in C++98 mode, but r104014
(which implemented the DR) was disabled in C++11.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200673 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTests for DR321-330.
Richard Smith [Mon, 3 Feb 2014 02:13:49 +0000 (02:13 +0000)]
Tests for DR321-330.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200672 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTests for DR301-320.
Richard Smith [Mon, 3 Feb 2014 01:23:27 +0000 (01:23 +0000)]
Tests for DR301-320.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200671 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMS ABI: Fix some layout tests
David Majnemer [Mon, 3 Feb 2014 00:29:57 +0000 (00:29 +0000)]
MS ABI: Fix some layout tests

Some lines intended to be used for testing x86_64 ABI compatibility were
not firing because lines were annotated with the wrong FileCheck prefix:
X64 vs x64

N.B. Changes beyond just changing x64 to X64 were made, presumably
because other parts of the layout engine have changed.  I've verified
the changes to make sure that MSVC creates a compatible layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200670 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoHandle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.
Joerg Sonnenberger [Sun, 2 Feb 2014 22:59:16 +0000 (22:59 +0000)]
Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200668 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoReplace hasMipsN32ABIArg with hasMipsABIArg in preparation of o32/n64
Joerg Sonnenberger [Sun, 2 Feb 2014 22:54:18 +0000 (22:54 +0000)]
Replace hasMipsN32ABIArg with hasMipsABIArg in preparation of o32/n64
support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200667 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse a switch for the emulation handling.
Joerg Sonnenberger [Sun, 2 Feb 2014 22:50:34 +0000 (22:50 +0000)]
Use a switch for the emulation handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200666 91177308-0d34-0410-b5e6-96231b3b80d8