]> granicus.if.org Git - clang/log
clang
9 years agoUse an early exit to improve readability. (NFC)
Adrian Prantl [Tue, 30 Jun 2015 18:01:05 +0000 (18:01 +0000)]
Use an early exit to improve readability. (NFC)

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

9 years agoDebug Info: Emit debug info for @import declarations.
Adrian Prantl [Tue, 30 Jun 2015 17:39:51 +0000 (17:39 +0000)]
Debug Info: Emit debug info for @import declarations.

This allows a module-aware debugger such as LLDB to import the currently
visible modules before dropping into the expression evaluator.

rdar://problem/20965932

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

9 years agoAdd a function to ExternalASTSource that returns a descriptor that
Adrian Prantl [Tue, 30 Jun 2015 17:39:43 +0000 (17:39 +0000)]
Add a function to ExternalASTSource that returns a descriptor that
abstracts the commonalities between modules and PCH files that are
needed to emit debug info for a module or precompiled header.

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

9 years ago[clang-cl] Use /arch: to set the base target CPU
Reid Kleckner [Tue, 30 Jun 2015 16:32:04 +0000 (16:32 +0000)]
[clang-cl] Use /arch: to set the base target CPU

The main effect of this change is that /arch:IA32 will use i386 as the
CPU, while clang-cl will continue to default to pentium4 (aka SSE2 plus
the usual other features).

/arch:AVX and /arch:AVX2 will also now enable the other features
available in sandybridge and haswell respectively, which is consistent
with MSDN.

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

9 years ago[Static Analyzer] Minor improvements to SATest.
Gabor Horvath [Tue, 30 Jun 2015 15:31:17 +0000 (15:31 +0000)]
[Static Analyzer] Minor improvements to SATest.

Differential Revision: http://reviews.llvm.org/D10812

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

9 years ago[X86] Rename DEFAULT_FN_ATTR macro to __DEFAULT_FN_ATTR
Michael Kuperstein [Tue, 30 Jun 2015 13:36:19 +0000 (13:36 +0000)]
[X86] Rename DEFAULT_FN_ATTR macro to __DEFAULT_FN_ATTR

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

9 years ago[CONCEPTS] Parsing of concept keyword
Hubert Tong [Tue, 30 Jun 2015 12:14:52 +0000 (12:14 +0000)]
[CONCEPTS] Parsing of concept keyword

Summary: This change adds parsing for the concept keyword in a
declaration and tracks the location. Diagnostic testing added for
invalid use of concept keyword.

Reviewers: faisalv, fraggamuffin, rsmith, hubert.reinterpretcast

Reviewed By: rsmith, hubert.reinterpretcast

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10528

Patch by Nathan Wilson!

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

9 years agoclang-format: Properly parse parenthesis in braced lists.
Daniel Jasper [Tue, 30 Jun 2015 11:32:22 +0000 (11:32 +0000)]
clang-format: Properly parse parenthesis in braced lists.

Among other things, this makes clang-format understand arbitrary blocks
embedded in them, such as:

  SomeFunction({MACRO({ return output; }), b});

where MACRO could e.g. expand to a lambda.

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

9 years ago[X86] Add missing undef of DEFAULT_FN_ATTRS in FXSR intrinsics
Michael Kuperstein [Tue, 30 Jun 2015 10:18:54 +0000 (10:18 +0000)]
[X86] Add missing undef of DEFAULT_FN_ATTRS in FXSR intrinsics

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

9 years ago[X86] Add FXSR intrinsics
Michael Kuperstein [Tue, 30 Jun 2015 09:45:38 +0000 (09:45 +0000)]
[X86] Add FXSR intrinsics

Add intrinsics for the FXSR instructions (FXSAVE/FXSAVE64/FXRSTOR/FXRSTOR64)

These were previously declared in Intrin.h for MSVC compatibility, but now
that we have them implemented, these declarations can be removed.

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

9 years agoFix a couple of tests in clang/test to match "x86_thiscallcc" introduced in r240971.
NAKAMURA Takumi [Tue, 30 Jun 2015 08:02:26 +0000 (08:02 +0000)]
Fix a couple of tests in clang/test to match "x86_thiscallcc" introduced in r240971.

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

9 years agoUnbreak the Visual C++ 2013 build after r241032.
Yaron Keren [Tue, 30 Jun 2015 07:35:19 +0000 (07:35 +0000)]
Unbreak the Visual C++ 2013 build after r241032.

clang\lib\Parse\ParseDeclCXX.cpp(2396): error C3486: a parameter for a lambda cannot have a default argument

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

9 years ago[CodeGen] Tweak isTriviallyRecursive further
David Majnemer [Tue, 30 Jun 2015 04:41:18 +0000 (04:41 +0000)]
[CodeGen] Tweak isTriviallyRecursive further

isTriviallyRecursive is a hack used to bridge a gap between the
expectations that source code assumes and the semantics that LLVM IR can
provide.  Specifically, asm labels on functions are treated as an
explicit name for a GlobalObject in Clang but treated like an
output-processing step in GCC.  Tweak this hack a little further to emit
calls to library functions instead of emitting an incorrect definition.
The definition in question would have available_externally linkage (this
is OK) but result in a call to itself which will either result in an
infinite loop or stack overflow.

This fixes PR23964.

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

9 years ago[MS ABI] Workaround corner-case bug in the ABI for operator delete
David Majnemer [Tue, 30 Jun 2015 03:30:26 +0000 (03:30 +0000)]
[MS ABI] Workaround corner-case bug in the ABI for operator delete

MSVC only genreates array cookies if the class has a destructor.  This
is problematic when having to call T::operator delete[](void *, size_t)
because the second argument's argument is impossible to synthesize
correctly if the class has no destructor (because there will be no array
cookie).

Instead, MSVC passes the size of the class.  Do the same, for
compatibility, instead of crashing.

This fixes PR23990.

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

9 years agoSphinx-based clang man pages
Andrew Wilkins [Tue, 30 Jun 2015 02:52:38 +0000 (02:52 +0000)]
Sphinx-based clang man pages

Summary:
This diff introduces .rst files, Sphinx config, and a CMake target
for building clang man pages. This will deprecate the existing .pod-
based man page, and will integrate nicely with CMake. This diff does
not remove the existing man page; that will be done in a follow-up
once packagers have had a chance to react to the change.

For now, only clang(1) has been done; others can be added over time
by dropping additional files into the docs/CommandGuide directory.
The index page for CommandGuide has been copied from LLVM's
docs/CommandGuide.

The man page itself is mostly the same, with a few minor cosmetic
changes. The only major change is the SYNOPSIS section. I was unable
to get .rst/Sphinx produce the same style as in the existing man page.
Instead, I changed it to match the LLVM tools' relatively simple style.

To build the man pages, use the "docs-clang-man" target if building
with CMake. Otherwise, use "make -f Makefile.sphinx man".

Reviewers: cmatthews, silvas

Subscribers: dim, gaeke, beanz, cfe-commits

Differential Revision: http://reviews.llvm.org/D10562

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

9 years agoAdd two missing arguments.
Adrian Prantl [Tue, 30 Jun 2015 02:34:37 +0000 (02:34 +0000)]
Add two missing arguments.
I forgot to add this file to r241035.

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

9 years agoPass HeaderSearchOptions and PreprocessorOptions into CodeGenModule.
Adrian Prantl [Tue, 30 Jun 2015 02:26:03 +0000 (02:26 +0000)]
Pass HeaderSearchOptions and PreprocessorOptions into CodeGenModule.
In order to produce debug info for clang modules CGDebugInfo it needs
access to macros passed on the command line and the isysroot.

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

9 years agoRework parsing of pure-specifiers. Perform the grammar matching and
Richard Smith [Tue, 30 Jun 2015 01:28:56 +0000 (01:28 +0000)]
Rework parsing of pure-specifiers. Perform the grammar matching and
disambiguation in the parser rather than trying to do it in Sema.

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

9 years agoPR23942: a pure-specifier's integer literal must be spelled '0'
Richard Smith [Mon, 29 Jun 2015 23:19:23 +0000 (23:19 +0000)]
PR23942: a pure-specifier's integer literal must be spelled '0'

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

9 years agoAdd support for the x86 builtin __builtin_cpu_supports.
Eric Christopher [Mon, 29 Jun 2015 21:00:05 +0000 (21:00 +0000)]
Add support for the x86 builtin __builtin_cpu_supports.

This matches the implementation of the gcc support for the same
feature, including checking the values set up by libgcc at runtime.
The structure looks like this:

  unsigned int __cpu_vendor;
  unsigned int __cpu_type;
  unsigned int __cpu_subtype;
  unsigned int __cpu_features[1];

with a set of enums to match various fields that are field out after
parsing the output of the cpuid instruction.
This also adds a set of errors checking for valid input (and cpu).

compiler-rt support for this and the other builtins in this family
(__builtin_cpu_init and __builtin_cpu_is) are forthcoming.

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

9 years ago[CodeGen] Remove atomic sugar from record types in isSafeToConvert
David Majnemer [Mon, 29 Jun 2015 20:13:23 +0000 (20:13 +0000)]
[CodeGen] Remove atomic sugar from record types in isSafeToConvert

We failed to see that we should have deferred the creation of a type
which references a type currently under construction because of atomic
sugar.

This fixes PR23985.

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

9 years agoMore range-based for loops. NFC
Douglas Katzman [Mon, 29 Jun 2015 19:12:56 +0000 (19:12 +0000)]
More range-based for loops. NFC

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

9 years agoComment fixes. NFC.
Douglas Katzman [Mon, 29 Jun 2015 18:42:16 +0000 (18:42 +0000)]
Comment fixes. NFC.

- Hexagon options were physically next to to ones that had a
  preceding comment saying "Double dash options", which they aren't.

- The 'ld' tool classes are named Linker, not Link.

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

9 years agoFix a test case broken by my previous commit.
Douglas Gregor [Mon, 29 Jun 2015 18:15:31 +0000 (18:15 +0000)]
Fix a test case broken by my previous commit.

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

9 years agoMake __has_feature(nullability) and __has_extension(nullability) always true.
Douglas Gregor [Mon, 29 Jun 2015 18:11:42 +0000 (18:11 +0000)]
Make __has_feature(nullability) and __has_extension(nullability) always true.

These are _Underbar_capital-prefixed additions to the language that
shouldn't depend on language standard.

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

9 years agoInstantiation of local class members.
Serge Pavlov [Mon, 29 Jun 2015 17:50:19 +0000 (17:50 +0000)]
Instantiation of local class members.

If a function containing a local class is instantiated, instantiate
all of local class member, including default arguments and exception
specifications.

This change fixes PR21332 and thus implements DR1484.

Differential Revision: http://reviews.llvm.org/D9990

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

9 years agoAccount for calling convention specifiers in function definitions in IR test cases
David Blaikie [Mon, 29 Jun 2015 17:29:50 +0000 (17:29 +0000)]
Account for calling convention specifiers in function definitions in IR test cases

Several tests wouldn't pass when executed on an armv7a_pc_linux triple
due to the non-default arm_aapcs calling convention produced on the
function definitions in the IR output. Account for this with the
application of a little regex.

Patch by Ying Yi.

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

9 years agoMake __has_extension(assume_nonnull) always true.
Douglas Gregor [Mon, 29 Jun 2015 17:25:49 +0000 (17:25 +0000)]
Make __has_extension(assume_nonnull) always true.

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

9 years ago[Modules] Test lock file removed on signal
Ben Langmuir [Mon, 29 Jun 2015 17:09:24 +0000 (17:09 +0000)]
[Modules] Test lock file removed on signal

For r240967.

rdar://problem/21512307

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

9 years agoRemove unnecessary include.
Adrian Prantl [Mon, 29 Jun 2015 16:14:36 +0000 (16:14 +0000)]
Remove unnecessary include.

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

9 years agoclang-format: Add option to break after definition return type for top-level function...
Birunthan Mohanathas [Mon, 29 Jun 2015 15:30:42 +0000 (15:30 +0000)]
clang-format: Add option to break after definition return type for top-level functions only

Differential Revision: http://reviews.llvm.org/D10774

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

9 years agoclang-format: Adjust Mozilla style defaults
Birunthan Mohanathas [Mon, 29 Jun 2015 15:18:58 +0000 (15:18 +0000)]
clang-format: Adjust Mozilla style defaults

Summary: This makes the Mozilla style defaults more compliant with the Mozilla style guide. A few options were removed in order to use the LLVM style defaults.

Differential Revision: http://reviews.llvm.org/D10771

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

9 years ago[x86][AVX512CD] Add conflict and lzcnt intrinsics in their 512bit versions
Asaf Badouh [Mon, 29 Jun 2015 12:51:53 +0000 (12:51 +0000)]
[x86][AVX512CD] Add conflict and lzcnt intrinsics in their 512bit versions
include tests

review
http://reviews.llvm.org/D10795

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

9 years ago[X86][AVX512BW] Add more intrinsics support:
Asaf Badouh [Mon, 29 Jun 2015 12:16:40 +0000 (12:16 +0000)]
[X86][AVX512BW] Add more intrinsics support:
 Blend, abs, packs, adds, subs, avg, max, min, permute.
 all the intrinsics are covered by tests

review:
http://reviews.llvm.org/D10799

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

9 years agoclang-format: Don't indent relative to unary operators (some more).
Daniel Jasper [Mon, 29 Jun 2015 10:42:59 +0000 (10:42 +0000)]
clang-format: Don't indent relative to unary operators (some more).

Before:
  long aaaaaaaa = !aaaa( // break
                      aaaaaa);
  long aaaaaaaa = !aa.aa( // break
      aaaaaa);

After:
  long aaaaaaaa = !aaaa( // break
      aaaaaa);
  long aaaaaaaa = !aa.aa( // break
      aaaaaa);

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

9 years agoThis is a comment-only change to test commit access
Igor Breger [Mon, 29 Jun 2015 09:48:56 +0000 (09:48 +0000)]
This is a comment-only change to test commit access

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

9 years ago[ARM]: Extend -mfpu options for half-precision and vfpv3xd
Javed Absar [Mon, 29 Jun 2015 09:30:19 +0000 (09:30 +0000)]
[ARM]: Extend -mfpu options for half-precision and vfpv3xd

Some of the the permissible ARM -mfpu options, which are supported in GCC,
are currently not present in llvm/clang.This patch adds the options:
'neon-fp16', 'vfpv3-fp16', 'vfpv3-d16-fp16', 'vfpv3xd' and 'vfpv3xd-fp16.
These are related to half-precision floating-point and single precision.

Reviewers: rengolin, ranjeet.singh

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10764

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

9 years agoAVX-512: Implemented AVX-512 FMA intrinsics and tests.
Elena Demikhovsky [Mon, 29 Jun 2015 09:20:57 +0000 (09:20 +0000)]
AVX-512:  Implemented  AVX-512 FMA intrinsics and tests.

by Igor Breger

http://reviews.llvm.org/D10797

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

9 years agoDelete unused variables.
Frederic Riss [Mon, 29 Jun 2015 04:41:58 +0000 (04:41 +0000)]
Delete unused variables.

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

9 years ago[MS ABI] Unify constant and non-constant member pointer conversion
David Majnemer [Mon, 29 Jun 2015 00:06:50 +0000 (00:06 +0000)]
[MS ABI] Unify constant and non-constant member pointer conversion

We had two separate paths for member pointer conversion: one which
takes a constant and another which takes an arbitrary value.  In the
latter case, we are permitted to construct arbitrary instructions.

It turns out that the bulk of the member pointer conversion is sharable
if we construct an artificial IRBuilder.

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

9 years agoRevert r240872, "Suppress clang/test/CodeGen/builtins-ppc-p8vector.c for -Asserts...
NAKAMURA Takumi [Sun, 28 Jun 2015 23:14:35 +0000 (23:14 +0000)]
Revert r240872, "Suppress clang/test/CodeGen/builtins-ppc-p8vector.c for -Asserts for now. Will fix later."

This has been fixed since r240912.

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

9 years ago[PPC] fixes typos in builtins-ppc-p8vector.c
Jingyue Wu [Sun, 28 Jun 2015 18:30:36 +0000 (18:30 +0000)]
[PPC] fixes typos in builtins-ppc-p8vector.c

The extra ] causes %{{[0-9]]*}} to match only %<single digit> such as %1.

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

9 years agoclang-format: Stop old options from overriding new options
Birunthan Mohanathas [Sun, 28 Jun 2015 14:52:34 +0000 (14:52 +0000)]
clang-format: Stop old options from overriding new options

Summary: Depends on D10785.

Reviewers: djasper

Reviewed By: djasper

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D10786

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

9 years agoclang-format: Add missing members to FormatStyle::operator==
Birunthan Mohanathas [Sun, 28 Jun 2015 14:52:01 +0000 (14:52 +0000)]
clang-format: Add missing members to FormatStyle::operator==

Summary: Depends on D10784.

Reviewers: djasper

Reviewed By: djasper

Subscribers: dblaikie, klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D10785

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

9 years agoclang-format: Alphabetize FormatStyle members
Birunthan Mohanathas [Sun, 28 Jun 2015 14:51:17 +0000 (14:51 +0000)]
clang-format: Alphabetize FormatStyle members

Reviewers: djasper

Reviewed By: djasper

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D10784

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

9 years ago[Driver] x86-64 Windows is always PIC
David Majnemer [Sun, 28 Jun 2015 04:23:33 +0000 (04:23 +0000)]
[Driver] x86-64 Windows is always PIC

This fixes PR23963.

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

9 years agoclang-format: Support @autoreleasepool.
Nico Weber [Sun, 28 Jun 2015 01:06:16 +0000 (01:06 +0000)]
clang-format: Support @autoreleasepool.

Format @autoreleasepool properly for the Attach brace style
by recognizing @autoreleasepool as a block introducer.

Patch from Strager Neds!
http://reviews.llvm.org/D10372

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

9 years ago[Sema] Unions cannot have virtual functions.
Davide Italiano [Sat, 27 Jun 2015 19:18:55 +0000 (19:18 +0000)]
[Sema] Unions cannot have virtual functions.

PR: PR23931
Differential Revision: http://reviews.llvm.org/D10752
Reviewed by:  rsmith

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

9 years agoFix typo. NFC.
Alex Denisov [Sat, 27 Jun 2015 19:04:55 +0000 (19:04 +0000)]
Fix typo. NFC.

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

9 years agoclang-format: Fix language of DisableFormat description
Birunthan Mohanathas [Sat, 27 Jun 2015 09:25:28 +0000 (09:25 +0000)]
clang-format: Fix language of DisableFormat description

This is a comment-only change to test commit access.

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

9 years agoSuppress clang/test/CodeGen/builtins-ppc-p8vector.c for -Asserts for now. Will fix...
NAKAMURA Takumi [Sat, 27 Jun 2015 03:33:47 +0000 (03:33 +0000)]
Suppress clang/test/CodeGen/builtins-ppc-p8vector.c for -Asserts for now. Will fix later.

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

9 years agoAdd a testcase for bitfield debug info.
Adrian Prantl [Fri, 26 Jun 2015 21:25:18 +0000 (21:25 +0000)]
Add a testcase for bitfield debug info.

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

9 years agoAdd missing builtins to altivec.h for ABI compliance (vol. 1)
Nemanja Ivanovic [Fri, 26 Jun 2015 19:27:20 +0000 (19:27 +0000)]
Add missing builtins to altivec.h for ABI compliance (vol. 1)

This patch corresponds to review:
http://reviews.llvm.org/D10637

This is the first round of additions of missing builtins listed in the ABI document. More to come (this builds onto what seurer already addes). This patch adds:
vector signed long long vec_abs(vector signed long long)
vector double vec_abs(vector double)
vector signed long long vec_add(vector signed long long, vector signed long long)
vector unsigned long long vec_add(vector unsigned long long, vector unsigned long long)
vector double vec_add(vector double, vector double)
vector double vec_and(vector bool long long, vector double)
vector double vec_and(vector double, vector bool long long)
vector double vec_and(vector double, vector double)
vector signed long long vec_and(vector signed long long, vector signed long long)
vector double vec_andc(vector bool long long, vector double)
vector double vec_andc(vector double, vector bool long long)
vector double vec_andc(vector double, vector double)
vector signed long long vec_andc(vector signed long long, vector signed long long)
vector double vec_ceil(vector double)
vector bool long long vec_cmpeq(vector double, vector double)
vector bool long long vec_cmpge(vector double, vector double)
vector bool long long vec_cmpge(vector signed long long, vector signed long long)
vector bool long long vec_cmpge(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmpgt(vector double, vector double)
vector bool long long vec_cmple(vector double, vector double)
vector bool long long vec_cmple(vector signed long long, vector signed long long)
vector bool long long vec_cmple(vector unsigned long long, vector unsigned long long)
vector bool long long vec_cmplt(vector double, vector double)
vector bool long long vec_cmplt(vector signed long long, vector signed long long)
vector bool long long vec_cmplt(vector unsigned long long, vector unsigned long long)

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

9 years ago[PPC]: Fix bug in getMultiarchTriple.
Douglas Katzman [Fri, 26 Jun 2015 18:37:15 +0000 (18:37 +0000)]
[PPC]: Fix bug in getMultiarchTriple.

And generally prefer not to restate TargetTriple.str() over and over.

Differential Revision: http://reviews.llvm.org/D10605

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

9 years agoAvoid false positive/negative test results from line directive interference.NFC.
Chad Rosier [Fri, 26 Jun 2015 17:49:10 +0000 (17:49 +0000)]
Avoid false positive/negative test results from line directive interference.NFC.

http://reviews.llvm.org/D10443
Patch by Geoff Berry.

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

9 years ago[static analyzer] Analyzer is skipping forward declared C/C++ functions
Anna Zaks [Fri, 26 Jun 2015 17:42:58 +0000 (17:42 +0000)]
[static analyzer] Analyzer is skipping forward declared C/C++ functions

A patch by Karthik Bhat!

This patch fixes a regression introduced by r224398. Prior to r224398
we were able to analyze the following code in test-include.c and report
a null deref in this case. But post r224398 this analysis is being skipped.

E.g.
  // test-include.c
  #include "test-include.h"
  void test(int * data) {
    data = 0;
    *data = 1;
  }

   // test-include.h
  void test(int * data);

This patch uses the function body (instead of its declaration) as the location
of the function when deciding if the Decl should be analyzed with path-sensitive
analysis. (Prior to r224398, the call graph was guaranteed to have a definition
when available.)

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

9 years agoclang-format some of the files in lib/Driver. NFC
Douglas Katzman [Fri, 26 Jun 2015 15:47:46 +0000 (15:47 +0000)]
clang-format some of the files in lib/Driver. NFC

Nothing was hand edited afterward except a few literal strings
and comments that were poorly broken.

Differential Revision: http://reviews.llvm.org/D10689

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

9 years ago[ObjC] Add NSValue support for objc_boxed_expressions
Alex Denisov [Fri, 26 Jun 2015 05:28:36 +0000 (05:28 +0000)]
[ObjC] Add NSValue support for objc_boxed_expressions

Patch extends ObjCBoxedExpr to accept records (structs and unions):

typedef struct __attribute__((objc_boxable)) _Color {
  int r, g, b;
} Color;

Color color;
NSValue *boxedColor = @(color); // [NSValue valueWithBytes:&color objCType:@encode(Color)];

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

9 years agoFix crash-on-invalid bug in template instantiation.
Manuel Klimek [Fri, 26 Jun 2015 02:15:04 +0000 (02:15 +0000)]
Fix crash-on-invalid bug in template instantiation.

Get rid of code-path that (according to Richard Smith) is not needed but
leads to a crasher bug when assuming a template has been fully
instantiated and thus has a definition.

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

9 years agoFileCheck-ize test and make sure more things don't happen.
Paul Robinson [Fri, 26 Jun 2015 00:36:50 +0000 (00:36 +0000)]
FileCheck-ize test and make sure more things don't happen.

Attribute 'nodebug' means no llvm.dbg.* intrinsics, no !dbg
annotations, and no DISubprogram for the function.

Differential Revision: http://reviews.llvm.org/D10747

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

9 years agoAdd new file from r240741 to CMakeLists.txt.
Nico Weber [Fri, 26 Jun 2015 00:19:32 +0000 (00:19 +0000)]
Add new file from r240741 to CMakeLists.txt.

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

9 years ago[Sema] Commit a better fix for r240242
Davide Italiano [Fri, 26 Jun 2015 00:18:35 +0000 (00:18 +0000)]
[Sema] Commit a better fix for r240242

Skip calls to HasTrivialDestructorBody() in the case where the
destructor is never invoked. Alternatively, Richard proposed to change
Sema to declare a trivial destructor for anonymous union member, which
seems too wasteful.

Differential Revision: http://reviews.llvm.org/D10508

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

9 years agoAdd an inttypes.h wrapper that fixes up some macros in Microsoft mode.
Nico Weber [Fri, 26 Jun 2015 00:13:18 +0000 (00:13 +0000)]
Add an inttypes.h wrapper that fixes up some macros in Microsoft mode.

Before MSVS2015, MSVS's headers disagree about int32_t and PRIx32 and so on.
Provide a wrapper header to fix this, so that -Wformat can still be used.
Fixes PR23412.

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

9 years ago[Sema] Maintain ellipsis location when transforming lambda captures
Meador Inge [Fri, 26 Jun 2015 00:09:55 +0000 (00:09 +0000)]
[Sema] Maintain ellipsis location when transforming lambda captures

This patch fixes a crash caused by the following case:

  template<typename T>
  auto f(T x) {
    auto g = [](auto ... args) {
      auto h = [args...]() -> int {
        return 0;
      };
      return h;
    };
    return g;
  }

  auto x = f(0)();

When the templated function 'f' is instantiated and the inner-most
lambda is transformed the ellipsis location on the captured variable
is lost.  Then the lambda returned by 'f' is instantiated and the
tree transformer chokes on the invalid ellipsis location.  The
problem is fixed by making a minor change to properly track the
ellipsis location.

This fixes PR23716.

Differential Revision: http://reviews.llvm.org/D10590

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

9 years ago[CodeGen] Restrict isTriviallyRecursive to predefined lib functions forwarding to...
David Majnemer [Thu, 25 Jun 2015 23:50:40 +0000 (23:50 +0000)]
[CodeGen] Restrict isTriviallyRecursive to predefined lib functions forwarding to lib functions

isTriviallyRecursive is only supposed to guard functions part of the
implementation.

This fixes PR23953.

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

9 years agoFix a typo correction crash when resolving ambiguous corrections.
Kaelyn Takata [Thu, 25 Jun 2015 23:47:39 +0000 (23:47 +0000)]
Fix a typo correction crash when resolving ambiguous corrections.

In certain cases, the tree transform would introduce new TypoExprs while
trying one of the corrections, invalidating the unique_ptr in the state
reference, and also causing a TypoExpr to exist that will never be
corrected since it doesn't exist in the final corrected expression. The
simple solution to both problems is to temporarily disable typo
correction while handling potentially ambiguous typo corrections.

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

9 years ago[docs] Several updates to the Address Sanitizer webpage.
Anna Zaks [Thu, 25 Jun 2015 23:36:44 +0000 (23:36 +0000)]
[docs] Several updates to the Address Sanitizer webpage.

 - Added the description of the interceptor suppression.
 - Re-organized a bit: grouped a few things under the Issue Suppression
   section, grouped IOC and leaks under a section, placed symbolication
   info into Symbolizing the Reports section..
 - In supported platforms: "MacOS" -> "OS X"; added "iOS Simulator"
 - Added a paragraph to the Usage section describing when DYLD_INSERT_LIBRARIES
   might need to be used.
 - "attribute((no_sanitize_address))" -> "__attribute__((no_sanitize("address")))"
 - Updated Leak Sanitizer page with most up to date info.
....

http://reviews.llvm.org/D10559

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

9 years agoRemove `requires` for x86 CPU features.
Sean Silva [Thu, 25 Jun 2015 23:22:11 +0000 (23:22 +0000)]
Remove `requires` for x86 CPU features.

Ever since the target attributes change, we don't need to guard these
headers with `requires`. Actually it's a bit worse, because if we do
then they are included textually under the covers, causing declarations
to appear in submodules they aren't supposed to be in.

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

9 years agoFix the test added in r240710.
Jonathan Roelofs [Thu, 25 Jun 2015 23:21:11 +0000 (23:21 +0000)]
Fix the test added in r240710.

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

9 years ago[CFI] Diagnose when we CFI in diagnostic mode is unavailable on a toolchain.
Alexey Samsonov [Thu, 25 Jun 2015 23:14:32 +0000 (23:14 +0000)]
[CFI] Diagnose when we CFI in diagnostic mode is unavailable on a toolchain.

Summary:
Namely, we must have proper C++ABI support in UBSan runtime. We don't
have a good way to check for that, so just assume that C++ABI support is
there whenever -fsanitize=vptr is supported (i.e. only on handful of
platforms).

Exact diagnostic is also tricky. It's not "cfi" that is unsupported,
just the diagnostic mode. So, I suggest to report that
"-fno-sanitize-trap=cfi-foobar" is incompatible with a given target
toolchain.

Test Plan: regression test suite

Reviewers: pcc

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10751

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

9 years agoDisplay profile file name when emitting a file not found diagnostic.
Diego Novillo [Thu, 25 Jun 2015 22:56:00 +0000 (22:56 +0000)]
Display profile file name when emitting a file not found diagnostic.

When a profile file cannot be opened, we used to display just the error
message but not the name of the profile the compiler was trying to open.
This will become useful in the next set of patches that introduce
GCC-compatible flags to specify profiles.

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

9 years agoThis should actually fix the broken bots.
Chris Bieneman [Thu, 25 Jun 2015 22:15:39 +0000 (22:15 +0000)]
This should actually fix the broken bots.

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

9 years ago[Parse] Allow 'constexpr' in condition declarations
Meador Inge [Thu, 25 Jun 2015 22:06:40 +0000 (22:06 +0000)]
[Parse] Allow 'constexpr' in condition declarations

This patch implements the functionality specified by DR948.
The changes are two fold.  First, the parser was modified
to allow 'constexpr's to appear in condition declarations
(which was a hard error before).  Second, Sema was modified
to cleanup maybe odr-used declarations by way of a call to
'ActOnFinishFullExpr'.  As 'constexpr's were not allowed in
condition declarations before the cleanup wasn't necessary
(such declarations were always odr-used).

This fixes PR22491.

Differential Revision: http://reviews.llvm.org/D8978

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

9 years ago[modules] Properly merge visibility of class definitions that got merged while
Richard Smith [Thu, 25 Jun 2015 21:42:33 +0000 (21:42 +0000)]
[modules] Properly merge visibility of class definitions that got merged while
parsing then merged again when the module was loaded.

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

9 years agodocs: Fix bad link in SafeStack.rst.
Peter Collingbourne [Thu, 25 Jun 2015 21:02:17 +0000 (21:02 +0000)]
docs: Fix bad link in SafeStack.rst.

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

9 years agoSpeculative fix for the broken bots.
Chris Bieneman [Thu, 25 Jun 2015 20:50:46 +0000 (20:50 +0000)]
Speculative fix for the broken bots.

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

9 years ago[modules] Fix findDirectiveAtLoc to not call a member function on a null pointer.
Richard Smith [Thu, 25 Jun 2015 20:48:44 +0000 (20:48 +0000)]
[modules] Fix findDirectiveAtLoc to not call a member function on a null pointer.

This is exercised by existing tests, and fixes a failure with -fsanitize=null.
No observable change otherwise; the code happened to do the right thing in
practice under recent versions of Clang and GCC because
MacroDirective::getDefinition happens to check whether this == null.

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

9 years agoAdd -miphonesimulator-version-min as alias to -ios-simulator-version-min.
Chris Bieneman [Thu, 25 Jun 2015 20:25:43 +0000 (20:25 +0000)]
Add -miphonesimulator-version-min as alias to -ios-simulator-version-min.

Summary:
For better or worse the OS X command line tools refer to the iOS simulator as iphonesimucator. We should provide an alias flag -miphonesimulator-version-min that matches a consistent pattern with the other tools.

This is in the interest of making it easier for people to write platform-agnostic darwin build scripts.

Reviewers: bob.wilson, bogner

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10743

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

9 years ago[clang-fuzzer] Update clang-fuzzer to API change in r240225.
Alexey Samsonov [Thu, 25 Jun 2015 20:21:59 +0000 (20:21 +0000)]
[clang-fuzzer] Update clang-fuzzer to API change in r240225.

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

9 years agoRename local variable CCCPrintActions -> CCCPrintPhases.
Douglas Katzman [Thu, 25 Jun 2015 19:37:41 +0000 (19:37 +0000)]
Rename local variable CCCPrintActions -> CCCPrintPhases.

To match the '-ccc-print-phases' command-line flag.
Also make two more 'for' loops range-based. NFC

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

9 years agoUse more range-based for loops
Douglas Katzman [Thu, 25 Jun 2015 18:51:37 +0000 (18:51 +0000)]
Use more range-based for loops

Differential Revision: http://reviews.llvm.org/D10738

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

9 years ago[CUDA] Implemented __nvvm_atom_*_gen_* builtins.
Artem Belevich [Thu, 25 Jun 2015 18:29:42 +0000 (18:29 +0000)]
[CUDA] Implemented __nvvm_atom_*_gen_* builtins.

Integer variants are implemented as atomicrmw or cmpxchg instructions.
Atomic add for floating point (__nvvm_atom_add_gen_f()) is implemented
as a call to an overloaded @llvm.nvvm.atomic.load.add.f32.* LVVM
intrinsic.

Differential Revision: http://reviews.llvm.org/D10666

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

9 years agoOmit 'nodebug' methods from the class description.
Paul Robinson [Thu, 25 Jun 2015 17:50:43 +0000 (17:50 +0000)]
Omit 'nodebug' methods from the class description.

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

9 years ago[NVPTX] Fixed a typo in __nvvm_atom_min_gen_l() type string.
Artem Belevich [Thu, 25 Jun 2015 17:34:23 +0000 (17:34 +0000)]
[NVPTX] Fixed a typo in __nvvm_atom_min_gen_l() type string.

Differential Revision: http://reviews.llvm.org/D10664

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

9 years agoFix #pragma redefine_extname when there is a local variable of the same name. The...
Aaron Ballman [Thu, 25 Jun 2015 15:37:16 +0000 (15:37 +0000)]
Fix #pragma redefine_extname when there is a local variable of the same name. The local should not be renamed, only the externally-available declaration should be.

Patch by Andrey Bokhanko!

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

9 years agoFix a crash by division by zero in analyzer
Daniel Marjamaki [Thu, 25 Jun 2015 14:06:02 +0000 (14:06 +0000)]
Fix a crash by division by zero in analyzer

Patch by takeshi-yoshimura!

Differential Revision: http://reviews.llvm.org/D10145

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

9 years agoTeach Clang about the PPC64 memory sanitizer implementation.
Jay Foad [Thu, 25 Jun 2015 10:35:19 +0000 (10:35 +0000)]
Teach Clang about the PPC64 memory sanitizer implementation.

Summary:
This is the Clang part of the PPC64 memory sanitizer implementation in
D10648.

Reviewers: kcc, eugenis, willschm, wschmidt, samsonov

Reviewed By: samsonov

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10650

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

9 years agoclang-format: [Proto] Don't treat "operator" as keyword.
Daniel Jasper [Thu, 25 Jun 2015 08:38:46 +0000 (08:38 +0000)]
clang-format: [Proto] Don't treat "operator" as keyword.

Before:
  optional string operator= 1;

After:
  optional string operator = 1;

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

9 years agoUpdate darwin SDK version parsing to support OSX and simulator
Steven Wu [Thu, 25 Jun 2015 01:59:35 +0000 (01:59 +0000)]
Update darwin SDK version parsing to support OSX and simulator

This re-commits r226005 with a tweak. The origin attempt failed because
Darwin bot sets up SDKROOT and clang can deduce SDK version from them
after this patch. That broke many driver tests due to the change of
deployment target version. Now the tests should not complain after
r240574.

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

9 years ago[UBSan] Allow to use -fsanitize=vptr only on Mac OS 10.9+
Alexey Samsonov [Thu, 25 Jun 2015 00:58:02 +0000 (00:58 +0000)]
[UBSan] Allow to use -fsanitize=vptr only on Mac OS 10.9+

See https://llvm.org/bugs/show_bug.cgi?id=23539 for why this
is necessary.

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

9 years agoConsolidate and unify initializer list deduction
Hubert Tong [Thu, 25 Jun 2015 00:25:49 +0000 (00:25 +0000)]
Consolidate and unify initializer list deduction

Summary:
This patch reduces duplication in the template argument deduction code
for handling deduction from initializer lists in a function call. This
extends the fix for PR12119 to also apply to the case where the
corresponding parameter is a trailing parameter pack.

Test Plan:
A test for deduction from nested initializer lists where the
corresponding parameter is a trailing parameter pack is added in
`clang/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp`.

Reviewers: fraggamuffin, rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10681

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

9 years ago[Concepts] Parsing of requires-clause in template-declaration
Hubert Tong [Thu, 25 Jun 2015 00:23:39 +0000 (00:23 +0000)]
[Concepts] Parsing of requires-clause in template-declaration

Summary:
This change implements parse-only acceptance of the optional
requires-clause in a template-declaration. Diagnostic testing is added
for cases where the grammar is ambiguous with the expectation that the
longest token sequence which matches the syntax of a
constraint-expression is consumed without backtracking.

Reviewers: faisalv, fraggamuffin, rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10462

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

9 years ago[ARM] The bits set in the variable HW_FP could get unset
Ranjeet Singh [Wed, 24 Jun 2015 23:39:25 +0000 (23:39 +0000)]
[ARM] The bits set in the variable HW_FP could get unset
when iterating through the Features vector if we don't
keep track of what's already been set. This could lead to
the macro __ARM_FP getting the wrong value. This patch
fixes this issue by keeping track of the bits that have
already been set in the loop.

Differential Revision: http://reviews.llvm.org/D10395

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

9 years agoupdate comment
Derek Schuff [Wed, 24 Jun 2015 22:36:38 +0000 (22:36 +0000)]
update comment

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

9 years agoRelax assertion in x86_64 byval argument handling for 32-bit pointers
Derek Schuff [Wed, 24 Jun 2015 22:36:36 +0000 (22:36 +0000)]
Relax assertion in x86_64 byval argument handling for 32-bit pointers

Summary:
Byval argument pair formation assumes that if a type is less than 8 bytes
it must be an integer and not a pointer, which is not true for x32 and NaCl.

Relax the assertion and add a test for a codegen case that triggered it.

Reviewers: jvoung

Subscribers: jfb, cfe-commits

Differential Revision: http://reviews.llvm.org/D10701

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

9 years agoAdd __nonnull/__nullable/__null_unspecified predefines for Darwin.
Douglas Gregor [Wed, 24 Jun 2015 22:02:16 +0000 (22:02 +0000)]
Add __nonnull/__nullable/__null_unspecified predefines for Darwin.

Addresses the rest of rdar://problem/21530726.

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

9 years agoReplace __double_underscored type nullability qualifiers with _Uppercase_underscored
Douglas Gregor [Wed, 24 Jun 2015 22:02:08 +0000 (22:02 +0000)]
Replace __double_underscored type nullability qualifiers with _Uppercase_underscored

Addresses a conflict with glibc's __nonnull macro by renaming the type
nullability qualifiers as follows:

  __nonnull -> _Nonnull
  __nullable -> _Nullable
  __null_unspecified -> _Null_unspecified

This is the major part of rdar://problem/21530726, but does not yet
provide the Darwin-specific behavior for the old names.

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

9 years agoRemove environment variables from driver tests
Steven Wu [Wed, 24 Jun 2015 19:30:36 +0000 (19:30 +0000)]
Remove environment variables from driver tests

Summary:
Remove some of dangerous environmental variables from clang/Driver tests.
Driver tests should not rely on preset value of these variables and may
actually fail because of them.
They cannot be removed in test/lit.cfg because we still need to support
relocatable SDKs and other overwrite for other clang tests.

Reviewers: bogner

Subscribers: rnk, cfe-commits

Differential Revision: http://reviews.llvm.org/D7135

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

9 years ago[Preprocessor] Iterating over all macros should include those from modules.
Jordan Rose [Wed, 24 Jun 2015 19:27:02 +0000 (19:27 +0000)]
[Preprocessor] Iterating over all macros should include those from modules.

So, iterate over the list of macros mentioned in modules, and make sure those
are in the master table.

This isn't particularly efficient, but hopefully it's something that isn't
done too often.

PR23929 and rdar://problem/21480635

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

9 years agoclang-format: [JS] Support regex literals containing quotes (' and ").
Daniel Jasper [Wed, 24 Jun 2015 16:01:02 +0000 (16:01 +0000)]
clang-format: [JS] Support regex literals containing quotes (' and ").

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