]> granicus.if.org Git - clang/log
clang
9 years agoReplace GetNumBytesInBuffer() in MicrosoftCXXNameMangler::mangleArgumentType by tell().
Yaron Keren [Sat, 2 May 2015 15:31:08 +0000 (15:31 +0000)]
Replace GetNumBytesInBuffer() in MicrosoftCXXNameMangler::mangleArgumentType by tell().

Using GetNumBytesInBuffer() assumes that the stream was not flushed between
the GetNumBytesInBuffer() calls, which may happen to be true or not,
depending on stream policy. tell() always reports the correct stream location.

Do note there are only two more uses of GetNumBytesInBuffer() in LLVM+clang, in
lib/MC/MCAsmStreamer.cpp and lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp.
The former may be replacable by tell (needs testing) but while the later can
not be immediatly replaced by tell() as it uses the absolute value of
GetNumBytesInBuffer() rather than the real stream position. Both uses seems
to depend upon flush policy and thus may not work correctly depending upon the
stream behaviour.

Going forward, GetNumBytesInBuffer() should probably be protected, non-accessible
to raw_ostream clients.

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

9 years agoclang-format: [JS] Fix calculation of template string width.
Daniel Jasper [Sat, 2 May 2015 08:05:38 +0000 (08:05 +0000)]
clang-format: [JS] Fix calculation of template string width.

OriginalColumn might not be set, so fall back to Location and SourceMgr
in case it is missing. Also initialize end column in case the token is
multi line, but it's the ` token itself that starts the multi line.

Patch by Martin Probst, thank you!

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

9 years agoclang-format: [JS] Fix templated parameter default values.
Daniel Jasper [Sat, 2 May 2015 07:54:58 +0000 (07:54 +0000)]
clang-format: [JS] Fix templated parameter default values.

Parameters can have templated types and default values (= ...), which is
another location in which a template closer should be followed by
whitespace.

Patch by Martin Probst, thank you.

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

9 years ago[MS ABI] Add testcase which was missing from r236354
David Majnemer [Sat, 2 May 2015 05:12:53 +0000 (05:12 +0000)]
[MS ABI] Add testcase which was missing from r236354

This test verifies that we can detect when the inheritance paths are
ambiguous due to covariant thunks, ensuring we don't regress PR16759.

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

9 years agoInstrProf: Cede ownership of createProfileWeights to CGF
Justin Bogner [Sat, 2 May 2015 05:00:55 +0000 (05:00 +0000)]
InstrProf: Cede ownership of createProfileWeights to CGF

The fact that PGO has a say in how these branch weights are determined
isn't interesting to most of CodeGen, so it makes more sense for this
API to be accessible via CodeGenFunction rather than CodeGenPGO.

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

9 years ago[modules] Remove dead code from Module for tracking macro import locations.
Richard Smith [Sat, 2 May 2015 02:08:26 +0000 (02:08 +0000)]
[modules] Remove dead code from Module for tracking macro import locations.

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

9 years ago[modules] Don't bother creating a ModuleMacro representing a #undef that overrides...
Richard Smith [Sat, 2 May 2015 01:14:40 +0000 (01:14 +0000)]
[modules] Don't bother creating a ModuleMacro representing a #undef that overrides nothing.

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

9 years agoFix -fobjc-arc doesn't work with -save-temps
Steven Wu [Sat, 2 May 2015 00:56:15 +0000 (00:56 +0000)]
Fix -fobjc-arc doesn't work with -save-temps

The underlying problem is that there is currently no way to run
ObjCARCContract from llvm bitcode which is required by ObjC ARC.
This fix the problem by always enable ObjCARCContract pass if
optimization is enabled. The ObjCARC Contract pass has almost no
overhead on code that is not using ARC.

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

9 years agoDiagnose delayed typos when parsing a postfix expression with an
Kaelyn Takata [Sat, 2 May 2015 00:49:18 +0000 (00:49 +0000)]
Diagnose delayed typos when parsing a postfix expression with an
unmatched l_paren before setting the LHS to ExprError().

Fixes PR23285.

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

9 years agoInstrProf: Use a locally tracked current count in ComputeRegionCounts
Justin Bogner [Sat, 2 May 2015 00:48:27 +0000 (00:48 +0000)]
InstrProf: Use a locally tracked current count in ComputeRegionCounts

No functional change. This just makes it more obvious that the logic
in ComputeRegionCounts only depends on the counter map and local
state.

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

9 years ago[modules] If a module #includes a modular header that #undef's its macro, it
Richard Smith [Sat, 2 May 2015 00:45:56 +0000 (00:45 +0000)]
[modules] If a module #includes a modular header that #undef's its macro, it
should not export the macro.

... at least, not unless we have local submodule visibility enabled.

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

9 years agoInstrProf: Replace the RegionCounter class with a simpler direct approach
Justin Bogner [Fri, 1 May 2015 23:41:09 +0000 (23:41 +0000)]
InstrProf: Replace the RegionCounter class with a simpler direct approach

This removes the RegionCounter class, which is only used as a helper
in teh ComputeRegionCounts stmt visitor. This class is just an extra
layer of abstraction that makes the code harder to follow at this
point, and removing it makes the logic quite a bit more direct.

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

9 years agoInstrProf: Add a couple of checks to this test
Justin Bogner [Fri, 1 May 2015 22:52:48 +0000 (22:52 +0000)]
InstrProf: Add a couple of checks to this test

"Don't crash" tests are silly, we might as well check that the
counters are consistent here.

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

9 years agoRemove some code left around for debugging purposes
David Majnemer [Fri, 1 May 2015 21:42:19 +0000 (21:42 +0000)]
Remove some code left around for debugging purposes

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

9 years ago[MS ABI] Detect and diagnose vftables which cannot be created
David Majnemer [Fri, 1 May 2015 21:35:45 +0000 (21:35 +0000)]
[MS ABI] Detect and diagnose vftables which cannot be created

The MSVC ABI has a bug introduced by appending to the end of vftables
which come from virtual bases: covariant thunks introduces via
non-overlapping regions of the inheritance lattice both append to the
same slot in the vftable.

It is possible to generate correct vftables in cases where one node in
the lattice completely dominates the other on the way to the base with
the vfptr; in all other cases, we must raise a diagnostic in order to
prevent the illusion that we succeeded in laying out the vftable.

This fixes PR16759.

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

9 years ago[MS ABI] NV bases may indirectly contain covariant thunks from V Bases
David Majnemer [Fri, 1 May 2015 21:35:41 +0000 (21:35 +0000)]
[MS ABI] NV bases may indirectly contain covariant thunks from V Bases

A class might contain multiple ways of getting to a vbase, some of which
are virtual and other non-virtual.  It may be the case that a
non-virtual base contains an override of a method in a vbase.  This
means that we must carefully pick between a set of nvbases to determine
which is the best.

As a consequence, the findPathForVPtr algorithm is considerably simpler.

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

9 years ago[modules] Add -fmodules-local-submodule-visibility flag.
Richard Smith [Fri, 1 May 2015 21:22:17 +0000 (21:22 +0000)]
[modules] Add -fmodules-local-submodule-visibility flag.

This flag specifies that the normal visibility rules should be used even for
local submodules (submodules of the currently-being-built module). Thus names
will only be visible if a header / module that declares them has actually been
included / imported, and not merely because a submodule that happened to be
built earlier declared those names. This also removes the need to modularize
bottom-up: textually-included headers will be included into every submodule
that includes them, since their include guards will not leak between modules.

So far, this only governs visibility of macros, not of declarations, so is not
ready for real use yet.

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

9 years agoARM: merge Cyclone into other ARMv8 CPUs and add tests for features.
Tim Northover [Fri, 1 May 2015 21:17:25 +0000 (21:17 +0000)]
ARM: merge Cyclone into other ARMv8 CPUs and add tests for features.

Cyclone actually supports all the goodies you'd expect to come with an AArch64
CPU, so it doesn't need its own clause. Also we should probably be testing
these clauses.

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

9 years agoAlso correct typos in the middle of a ternary expression when the RHS is invalid.
Kaelyn Takata [Fri, 1 May 2015 20:59:18 +0000 (20:59 +0000)]
Also correct typos in the middle of a ternary expression when the RHS is invalid.

The LHS was already being corrected before being set to ExprError when
the RHS is invalid, but when it was present the middle of a ternary
expression would be dropped in the error paths.

Fixes PR23350.

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

9 years agoAdjust the wording of the "brackets go after the unqualified-id" error message. It...
Nick Lewycky [Fri, 1 May 2015 20:47:19 +0000 (20:47 +0000)]
Adjust the wording of the "brackets go after the unqualified-id" error message. It applies in cases that aren't unqualified-ids.

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

9 years agoSuppress clang/test/OpenMP/task_private_codegen.cpp on win32 for now. Investigating.
NAKAMURA Takumi [Fri, 1 May 2015 19:44:13 +0000 (19:44 +0000)]
Suppress clang/test/OpenMP/task_private_codegen.cpp on win32 for now. Investigating.

I'm dubious in weird behavior with CHECK-DAG.

Also, it won't "REQUIRE non-ms-sdk". All of RUNs have "-triple darwin".

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

9 years agoEagerly correct typos in ParenExprs that may be type casts for non-C++ code.
Kaelyn Takata [Fri, 1 May 2015 19:36:25 +0000 (19:36 +0000)]
Eagerly correct typos in ParenExprs that may be type casts for non-C++ code.

This is needed to ensure the type casts are parsed properly. Fixes
PR23101.

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

9 years agoInstrProf: Fix a coverage crash where a macro begins in an unreachable block
Justin Bogner [Fri, 1 May 2015 19:23:34 +0000 (19:23 +0000)]
InstrProf: Fix a coverage crash where a macro begins in an unreachable block

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

9 years agoR600: Report fp64 on all capable asics
Jan Vesely [Fri, 1 May 2015 17:38:13 +0000 (17:38 +0000)]
R600: Report fp64 on all capable asics

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236325 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMake helper functions static. NFC.
Benjamin Kramer [Fri, 1 May 2015 13:59:53 +0000 (13:59 +0000)]
Make helper functions static. NFC.

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

9 years agoASTReader.h: Prune "\param Complain" since r236300. [-Wdocumentation]
NAKAMURA Takumi [Fri, 1 May 2015 08:38:41 +0000 (08:38 +0000)]
ASTReader.h: Prune "\param Complain" since r236300. [-Wdocumentation]

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

9 years agoFix a few line endings. NFC.
Yunzhong Gao [Fri, 1 May 2015 02:04:32 +0000 (02:04 +0000)]
Fix a few line endings. NFC.

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

9 years ago[modules] Start moving the module visibility information off the Module itself.
Richard Smith [Fri, 1 May 2015 01:53:09 +0000 (01:53 +0000)]
[modules] Start moving the module visibility information off the Module itself.

It has no place there; it's not a property of the Module, and it makes
restoring the visibility set when we leave a submodule more difficult.

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

9 years agoInstrProf: This call does nothing, remove it
Justin Bogner [Fri, 1 May 2015 01:02:17 +0000 (01:02 +0000)]
InstrProf: This call does nothing, remove it

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

9 years agoInstrProf: Support for setting profile output from command line
Justin Bogner [Thu, 30 Apr 2015 23:49:42 +0000 (23:49 +0000)]
InstrProf: Support for setting profile output from command line

This change is the third of 3 patches to add support for specifying
the profile output from the command line via -fprofile-instr-generate=<path>,
where the specified output path/file will be overridden by the
LLVM_PROFILE_FILE environment variable.

This patch adds the necessary support to the clang frontend, and adds a
new test.

The compiler-rt and llvm parts are r236055 and r236288, respectively.

Patch by Teresa Johnson. Thanks!

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

9 years agoMake macro dumping robust against a nonexistent macro.
Richard Smith [Thu, 30 Apr 2015 23:42:10 +0000 (23:42 +0000)]
Make macro dumping robust against a nonexistent macro.

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

9 years agoFix -Wpessimizing-move by removing call to std::move
Richard Trieu [Thu, 30 Apr 2015 23:13:52 +0000 (23:13 +0000)]
Fix -Wpessimizing-move by removing call to std::move

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

9 years ago[modules] Add a mechanism to dump information about a macro.
Richard Smith [Thu, 30 Apr 2015 23:10:40 +0000 (23:10 +0000)]
[modules] Add a mechanism to dump information about a macro.

Wire this up to "#pragma clang __debug macro <name>".

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

9 years agoInstrProf: Fix handling of profile counters in the body of range based for
Justin Bogner [Thu, 30 Apr 2015 22:58:28 +0000 (22:58 +0000)]
InstrProf: Fix handling of profile counters in the body of range based for

We were assigning the counter for the body of the loop to the loop
variable initialization for some reason here, but our tests completely
lacked coverage for range-for loops. This fixes that and makes the
logic generally more similar to the logic for a regular for.

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

9 years agoRe-commit the test fix that went with r236274
Reid Kleckner [Thu, 30 Apr 2015 22:42:45 +0000 (22:42 +0000)]
Re-commit the test fix that went with r236274

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

9 years agoRevert most of r236271, leaving only the datalayout change in lib/Basic/Targets.cpp
Reid Kleckner [Thu, 30 Apr 2015 22:29:25 +0000 (22:29 +0000)]
Revert most of r236271, leaving only the datalayout change in lib/Basic/Targets.cpp

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

9 years agoUse 4 byte preferred aggregate alignment in datalayout on x86 Win32
Reid Kleckner [Thu, 30 Apr 2015 22:13:05 +0000 (22:13 +0000)]
Use 4 byte preferred aggregate alignment in datalayout on x86 Win32

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

9 years agoInstrProf: Make sure coverage propagates out of foreach loops correctly
Justin Bogner [Thu, 30 Apr 2015 21:31:02 +0000 (21:31 +0000)]
InstrProf: Make sure coverage propagates out of foreach loops correctly

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

9 years agoPR19691: initialize MacroDirective::DefInfo::IsPublic member in "invalid" state.
Richard Smith [Thu, 30 Apr 2015 20:53:28 +0000 (20:53 +0000)]
PR19691: initialize MacroDirective::DefInfo::IsPublic member in "invalid" state.

No functionality change; no-one inspects this field yet, and probably no-one
will ever inspect it in the "invalid" state, but ubsan could be unhappy about
this if such a DefInfo is copied.

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

9 years agoPR22354: Add a test that we emit copy-ctors for captures in generic lambdas.
Richard Smith [Thu, 30 Apr 2015 20:51:03 +0000 (20:51 +0000)]
PR22354: Add a test that we emit copy-ctors for captures in generic lambdas.

The bug was fixed by r235921.

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

9 years agoFix the end location of init-capture annotations in ObjC++
Ben Langmuir [Thu, 30 Apr 2015 18:40:23 +0000 (18:40 +0000)]
Fix the end location of init-capture annotations in ObjC++

And thereby stop asserting.

In ObjC++ modes, we tentatively parse the lambda introducer twice: once
to disambiguate designators, which we also do in C++, and a second time
to disambiguate objc message expressions. During the second tentative
parse, the last cached token will be the annotation token we built in
the first parse. So use getLastLoc() to get the correct end location
for the rebuilt annotation.

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

9 years agoRemove some leftover debugging code.
David Majnemer [Thu, 30 Apr 2015 18:16:38 +0000 (18:16 +0000)]
Remove some leftover debugging code.

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

9 years agoDon't warn about use of deprecated API when the containing context is unavailable.
Jordan Rose [Thu, 30 Apr 2015 17:20:35 +0000 (17:20 +0000)]
Don't warn about use of deprecated API when the containing context is unavailable.

This probably won't come up much, but it seems tidier.

Related to rdar://problem/20713550

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

9 years agoBatch up access-related diagnostics on enum constants until the whole enum is parsed.
Jordan Rose [Thu, 30 Apr 2015 17:20:30 +0000 (17:20 +0000)]
Batch up access-related diagnostics on enum constants until the whole enum is parsed.

That way we can take any trailing availability attributes into account.

rdar://problem/20713550

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

9 years ago[MS ABI] Correctly make paths through covariant virtual bases
David Majnemer [Thu, 30 Apr 2015 17:15:48 +0000 (17:15 +0000)]
[MS ABI] Correctly make paths through covariant virtual bases

There can be multiple virtual bases which are on the path to a vfptr
when one vbase virtually inherits from another.  We should prefer the
most derived virtual base which covariantly overrides a method in the
vfptr class;  if we do not lengthen the path this way, we will end up
with too few vftable entries.

This fixes PR21073.

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

9 years ago[AST] Fix some typos
David Majnemer [Thu, 30 Apr 2015 17:15:46 +0000 (17:15 +0000)]
[AST] Fix some typos

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

9 years agoAVX-512: Added AVX-512 intrinsics and tests
Elena Demikhovsky [Thu, 30 Apr 2015 09:24:29 +0000 (09:24 +0000)]
AVX-512: Added AVX-512 intrinsics and tests
by Asaf Badouh (asaf.badouh@intel.com)

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

9 years agoclang-format: Don't merge short else blocks.
Daniel Jasper [Thu, 30 Apr 2015 09:24:17 +0000 (09:24 +0000)]
clang-format: Don't merge short else blocks.

Before (with the appropriate flags settings):
  if (a) {
    f();
  } else { g(); }

Before (with other appropriate flags settings):
  if (a) { f(); } else {
    g();
  }

After:
  if (a) {
    f();
  } else {
    g();
  }

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

9 years ago[OPENMP] Mark test as not compatible with MS Windows.
Alexey Bataev [Thu, 30 Apr 2015 08:35:10 +0000 (08:35 +0000)]
[OPENMP] Mark test as not compatible with MS Windows.

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

9 years ago[OPENMP] Codegen for 'private' clause in 'task' directive.
Alexey Bataev [Thu, 30 Apr 2015 06:51:57 +0000 (06:51 +0000)]
[OPENMP] Codegen for 'private' clause in 'task' directive.

For tasks codegen for private/firstprivate variables are different rather than for other directives.

1. Build an internal structure of privates for each private variable:
struct .kmp_privates_t. {
  Ty1 var1;
  ...
  Tyn varn;
};
2. Add a new field to kmp_task_t type with list of privates.
struct kmp_task_t {
  void *              shareds;
  kmp_routine_entry_t routine;
  kmp_int32           part_id;
  kmp_routine_entry_t destructors;
  .kmp_privates_t.    privates;
};
3. Create a function with destructors calls for all privates after end of task region.
kmp_int32 .omp_task_destructor.(kmp_int32 gtid, kmp_task_t *tt) {
  ~Destructor(&tt->privates.var1);
  ...
  ~Destructor(&tt->privates.varn);
  return 0;
}
4. Perform default initialization of all private fields (no initialization for POD data, default constructor calls for classes) + provide address of a destructor function after kmpc_omp_task_alloc() and before kmpc_omp_task() calls.
kmp_task_t *new_task = __kmpc_omp_task_alloc(ident_t *, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t *task_entry);

DefaultConstructor(new_task->privates.var1);
new_task->shareds.var1_ref = &new_task->privates.var1;
...
DefaultConstructor(new_task->privates.varn);
new_task->shareds.varn_ref = &new_task->privates.varn;

new_task->destructors = .omp_task_destructor.;
kmp_int32 __kmpc_omp_task(ident_t *, kmp_int32 gtid, kmp_task_t *new_task)

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

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

9 years ago[OPENMP] Allow to use global variables as lcv in loop-based directives.
Alexey Bataev [Thu, 30 Apr 2015 04:23:23 +0000 (04:23 +0000)]
[OPENMP] Allow to use global variables as lcv in loop-based directives.

For proper codegen we need to capture variable in the OpenMP region. In loop-based directives loop control variables are private by default and they must be captured in this region. There was a problem with capturing of globals, used as lcv, as they was not marked as private by default.
Differential Revision: http://reviews.llvm.org/D9336

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

9 years ago[OPENMP] Fixed codegen for 'copyprivate' clause.
Alexey Bataev [Thu, 30 Apr 2015 03:47:32 +0000 (03:47 +0000)]
[OPENMP] Fixed codegen for 'copyprivate' clause.

Fixed initialization of 'single' region completion + changed type of the third argument of __kmpc_copyprivate() runtime function to size_t.

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

9 years agoRemove dead code: a MacroDirective can't be imported or ambiguous any more.
Richard Smith [Thu, 30 Apr 2015 02:16:23 +0000 (02:16 +0000)]
Remove dead code: a MacroDirective can't be imported or ambiguous any more.

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

9 years agoRemove XFAIL now that this test passes (fixed by r236184).
Richard Smith [Thu, 30 Apr 2015 01:15:19 +0000 (01:15 +0000)]
Remove XFAIL now that this test passes (fixed by r236184).

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

9 years agoFix use of uninitialized variable, found by ubsan selfhost.
Richard Smith [Thu, 30 Apr 2015 00:57:08 +0000 (00:57 +0000)]
Fix use of uninitialized variable, found by ubsan selfhost.

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

9 years agoUse a more reliable method to determine whether
Sean Callanan [Thu, 30 Apr 2015 00:44:21 +0000 (00:44 +0000)]
Use a more reliable method to determine whether
a FileID corresponds to a real file or to a
memory buffer.  The old method didn't work when
Clang was built Release, which meant it wasn't
a very good method at all.

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

9 years agoUpdate clang/test/CodeGenCXX/copy-constructor-synthesis-2.cpp to pass for targeting...
NAKAMURA Takumi [Wed, 29 Apr 2015 23:55:46 +0000 (23:55 +0000)]
Update clang/test/CodeGenCXX/copy-constructor-synthesis-2.cpp to pass for targeting i686.

r236155 missed the suffix in "@llvm.memcpy.p0i8.p0i8.i32".

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

9 years agoAdd an assert to get information on buildbot failure.
Richard Smith [Wed, 29 Apr 2015 23:40:48 +0000 (23:40 +0000)]
Add an assert to get information on buildbot failure.

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

9 years agoPropagate a terrible hack to the sparc target feature handling code
Eric Christopher [Wed, 29 Apr 2015 23:32:17 +0000 (23:32 +0000)]
Propagate a terrible hack to the sparc target feature handling code
by erasing the soft-float target feature if the rest of the front
end added it because of defaults or the soft float option.

Add some testing for some of the targets that implement this hack.

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

9 years agoFix unused variable warning.
Richard Smith [Wed, 29 Apr 2015 23:26:13 +0000 (23:26 +0000)]
Fix unused variable warning.

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

9 years ago[modules] Stop trying to fake up a linear MacroDirective history.
Richard Smith [Wed, 29 Apr 2015 23:20:19 +0000 (23:20 +0000)]
[modules] Stop trying to fake up a linear MacroDirective history.

Modules builds fundamentally have a non-linear macro history. In the interest
of better source fidelity, represent the macro definition information
faithfully: we have a linear macro directive history within each module, and at
any point we have a unique "latest" local macro directive and a collection of
visible imported directives. This also removes the attendent complexity of
attempting to create a correct MacroDirective history (which we got wrong
in the general case).

No functionality change intended.

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

9 years agoXFAIL Hexagon until more codegen in place.
Rick Foos [Wed, 29 Apr 2015 22:54:40 +0000 (22:54 +0000)]
XFAIL Hexagon until more codegen in place.

Summary:
Hexagon is being updated, but there is not enough to pass these tests.
These sections are now on top of Colin's list.

Test Plan: Ran changes on hexagon-build-03.

Reviewers: colinl, rfoos

Reviewed By: rfoos

Subscribers: cfe-commits

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

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

9 years agoRevert r236128, LLVM isn't falling back in the right way
Reid Kleckner [Wed, 29 Apr 2015 21:55:21 +0000 (21:55 +0000)]
Revert r236128, LLVM isn't falling back in the right way

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

9 years ago[opaque pointer type] update for LLVM API change
David Blaikie [Wed, 29 Apr 2015 21:22:47 +0000 (21:22 +0000)]
[opaque pointer type] update for LLVM API change

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

9 years agoRevert r236060, it caused PR23375.
Nico Weber [Wed, 29 Apr 2015 21:16:40 +0000 (21:16 +0000)]
Revert r236060, it caused PR23375.

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

9 years agoStop assuming a 64-bit target here.
Richard Smith [Wed, 29 Apr 2015 20:49:22 +0000 (20:49 +0000)]
Stop assuming a 64-bit target here.

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

9 years agoPR23373: A defaulted union copy constructor that is not trivial must still be
Richard Smith [Wed, 29 Apr 2015 19:26:57 +0000 (19:26 +0000)]
PR23373: A defaulted union copy constructor that is not trivial must still be
emitted as a memcpy.

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

9 years agoRevert r236063 due to regression with -fdelayed-template-parsing.
Richard Smith [Wed, 29 Apr 2015 17:48:08 +0000 (17:48 +0000)]
Revert r236063 due to regression with -fdelayed-template-parsing.

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

9 years agoRe-land r236052, the linker errors were fixed by LLVM r236123
Reid Kleckner [Wed, 29 Apr 2015 17:17:17 +0000 (17:17 +0000)]
Re-land r236052, the linker errors were fixed by LLVM r236123

Basic __finally blocks don't cause linker errors anymore (although they
are miscompiled).

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

9 years agoDebug Info: Represent local anonymous unions as anonymous unions
Adrian Prantl [Wed, 29 Apr 2015 16:52:31 +0000 (16:52 +0000)]
Debug Info: Represent local anonymous unions as anonymous unions
and as artificial local variables in the debug info.

This is a follow-up to r236059. We can't get rid of the local variables
entirely because the gdb buildbot depends on them, but we can mark them
as artificial while still emitting the correct debug info. As I learned
from review comments other compilers also follow this model.

A paired commit in LLVM temporarily relaxes the debug info verifier to
not check the integrity of DW_OP_bit_pieces of artificial variables.

rdar://problem/20730771

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

9 years agoDebugInfo: Metadata constructs now start with DI*
Duncan P. N. Exon Smith [Wed, 29 Apr 2015 16:40:08 +0000 (16:40 +0000)]
DebugInfo: Metadata constructs now start with DI*

LLVM r236120 renamed debug info IR constructs to use a `DI` prefix, now
that the `DIDescriptor` hierarchy has been gone for about a week.  This
commit was generated using the rename-md-di-nodes.sh upgrade script
attached to PR23080, followed by running clang-format-diff.py on the
`lib/` portion of the patch.

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

9 years agoRevert "Debug Info: Represent local anonymous unions as anonymous unions"
Adrian Prantl [Wed, 29 Apr 2015 15:05:50 +0000 (15:05 +0000)]
Revert "Debug Info: Represent local anonymous unions as anonymous unions"

This reverts commit r236059 as it breaks the gdb buildbot.

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

9 years agoRevert code changes made under r235976.
Bradley Smith [Wed, 29 Apr 2015 14:32:06 +0000 (14:32 +0000)]
Revert code changes made under r235976.

This issue was fixed elsewhere in r235396 in a more general way, hence these
changes no longer do anything. Keep the testcase however, to ensure that we
don't regress this for ARM.

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

9 years agoclang-format: Add ability to align assignment operators.
Daniel Jasper [Wed, 29 Apr 2015 13:06:49 +0000 (13:06 +0000)]
clang-format: Add ability to align assignment operators.

In Objective-C some style guides use a style where assignment operators are
aligned, in an effort to increase code readability. This patch adds an option
to the format library which allows this functionality. It is disabled by
default for all the included styles, so it must be explicitly enabled.

The option will change code such as:
  - (void)method {
      NSNumber *one = @1;
      NSNumber *twentyFive = @25;
  }

to:
  - (void)method {
      NSNumber *one        = @1;
      NSNumber *twentyFive = @25;
  }

Patch by Matt Oakes. Thank you!

Accidentally reformatted all the tests...

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

9 years agoclang-format: Fix selective indentaiton in nested blocks.
Daniel Jasper [Wed, 29 Apr 2015 08:29:26 +0000 (08:29 +0000)]
clang-format: Fix selective indentaiton in nested blocks.

Buggy case:
  someFunction(
      [] {
        // comment
        int i; // invoke formatting here.
      },       // force line break
      aaa);

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

9 years ago[OPENMP] Fix crash on reductions codegen for short circuit reduction operations.
Alexey Bataev [Wed, 29 Apr 2015 05:21:03 +0000 (05:21 +0000)]
[OPENMP] Fix crash on reductions codegen for short circuit reduction operations.

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

9 years agoRevert r236052, it caused linker errors when building 32-bit applications.
Nico Weber [Wed, 29 Apr 2015 03:08:32 +0000 (03:08 +0000)]
Revert r236052, it caused linker errors when building 32-bit applications.

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

9 years agoAdd -Wpessimizing-move and -Wredundant-move warnings.
Richard Trieu [Wed, 29 Apr 2015 01:52:17 +0000 (01:52 +0000)]
Add -Wpessimizing-move and -Wredundant-move warnings.

-Wpessimizing-move warns when a call to std::move would prevent copy elision
if the argument was not wrapped in a call.  This happens when moving a local
variable in a return statement when the variable is the same type as the
return type or using a move to create a new object from a temporary object.

-Wredundant-move warns when an implicit move would already be made, so the
std::move call is not needed, such as when moving a local variable in a return
that is different from the return type.

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

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

9 years agoPR20625: Instantiate static constexpr member function of a local struct in a function...
Richard Smith [Wed, 29 Apr 2015 00:07:09 +0000 (00:07 +0000)]
PR20625: Instantiate static constexpr member function of a local struct in a function template earlier.

This is necessary in order to allow the use of a constexpr member function, or
a member function with deduced return type, of a local class within a
surrounding instantiated function template specialization.

Patch by Michael Park!

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

9 years agoStop emitting the soft-float and soft-float-abi target features
Eric Christopher [Tue, 28 Apr 2015 23:18:33 +0000 (23:18 +0000)]
Stop emitting the soft-float and soft-float-abi target features
for ARM while the backend will only ignore them. No functional
change intended.

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

9 years agoDebug Info: Represent local anonymous unions as anonymous unions
Adrian Prantl [Tue, 28 Apr 2015 23:01:24 +0000 (23:01 +0000)]
Debug Info: Represent local anonymous unions as anonymous unions
in the debug info. This patch deletes a hack that emits the members
of local anonymous unions as local variables.

Besides being morally wrong, the existing representation using local
variables breaks internal assumptions about the local variables' storage
size.

Compiling

```
   void fn1() {
     union {
       int i;
       char c;
     };
     i = c;
   }

```

with -g -O3 -verify will cause the verifier to fail after SROA splits
the 32-bit storage for the "local variable" c into two pieces because the
second piece is clearly outside the 8-bit range that is expected for a
variable of type char. Given the choice I'd rather fix the debug
representation than weaken the verifier.

Debuggers generally already know how to deal with anonymous unions when
they are members of C++ record types, but they may have problems finding
the local anonymous struct members in the expression evaluator.

rdar://problem/20730771

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

9 years agoFix Sema tests using __try by adding triple
Reid Kleckner [Tue, 28 Apr 2015 22:58:25 +0000 (22:58 +0000)]
Fix Sema tests using __try by adding triple

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

9 years ago[SEH] Add 32-bit lowering code for __try
Reid Kleckner [Tue, 28 Apr 2015 22:19:32 +0000 (22:19 +0000)]
[SEH] Add 32-bit lowering code for __try

This is just the clang-side of 32-bit SEH. LLVM still needs work, and it
will determinstically fail to compile until it's feature complete.

On x86, all outlined handlers have no parameters, but they do implicitly
take the EBP value passed in and use it to address locals of the parent
frame. We model this with llvm.frameaddress(1).

This works (mostly), but __finally block inlining can break it. For now,
we apply the 'noinline' attribute. If we really want to inline __finally
blocks on 32-bit x86, we should teach the inliner how to untangle
frameescape and framerecover.

Promote the error diagnostic from codegen to sema. It now rejects SEH on
non-Windows platforms. LLVM doesn't implement SEH on non-x86 Windows
platforms, but there's nothing preventing it.

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

9 years agoFix the typo in r236044. NFC.
Steven Wu [Tue, 28 Apr 2015 22:07:05 +0000 (22:07 +0000)]
Fix the typo in r236044. NFC.

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

9 years agoFix -fno-gnu-inline-asm doesn't catch file scope asm
Steven Wu [Tue, 28 Apr 2015 21:49:09 +0000 (21:49 +0000)]
Fix -fno-gnu-inline-asm doesn't catch file scope asm

Summary:
FileScopeAsm should be treated the same as funcion level inline asm.
-fno-gnu-inline-asm should trigger an error if file scope asm is used.
I missed this case from r226340. This should not affect ms-extension
because it is not allowed in the file scope.

Reviewers: bob.wilson, rnk

Reviewed By: rnk

Subscribers: cfe-commits

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

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

9 years agoFix assertion failure if a lambda array-capture is followed by a this capture.
Richard Smith [Tue, 28 Apr 2015 21:41:14 +0000 (21:41 +0000)]
Fix assertion failure if a lambda array-capture is followed by a this capture.

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

9 years agoAttempt to fix the MSVC build by making ExprIterator
Sean Callanan [Tue, 28 Apr 2015 21:18:01 +0000 (21:18 +0000)]
Attempt to fix the MSVC build by making ExprIterator
inherit correctly.

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

9 years agoWork around a suspected MSVC miscompile to try to bring the MSVC2013 buildbot back.
Richard Smith [Tue, 28 Apr 2015 21:09:27 +0000 (21:09 +0000)]
Work around a suspected MSVC miscompile to try to bring the MSVC2013 buildbot back.

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

9 years agoRefactor to make MacroState ownership and lifetime clearer.
Richard Smith [Tue, 28 Apr 2015 21:05:07 +0000 (21:05 +0000)]
Refactor to make MacroState ownership and lifetime clearer.

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

9 years ago[cuda] Preserve TLS storage class of host variable even if it's a
Artem Belevich [Tue, 28 Apr 2015 20:31:49 +0000 (20:31 +0000)]
[cuda] Preserve TLS storage class of host variable even if it's a
device-side compilation.

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

9 years agoImplemented ASTImporter support for Stmts and fixed
Sean Callanan [Tue, 28 Apr 2015 18:41:46 +0000 (18:41 +0000)]
Implemented ASTImporter support for Stmts and fixed
some bugs in the ASTImporter that this exposed:

- When importing functions, the body (if any) was
  previously ignored.  This patch ensures that the
  body is imported also.

- When a function-local Decl is imported, the first
  thing the ASTImporter does is import its context
  (via ImportDeclParts()).  This can trigger
  importing the Decl again as part of the body of
  the function (but only once, since the function's
  Decl has been added to ImportedDecls).  This patch
  fixes that problem by extending ImportDeclParts()
  to return the imported Decl if it was imported as
  part of importing its context, and the patch adds
  ASTImporter::GetAlreadyImportedOrNull() to support
  this query.  All callers of ImportDeclParts return
  the imported version of the Decl if ImportDeclParts()
  returns it.

- When creating functions, InnerLocStart of the source
  function was re-used without importing.  This is a
  straight up bug, and this patch makes ASTImporter
  import the InnerLocStart and use the imported version.

- When importing FileIDs, the ASTImporter previously
  always tried to re-load the file for the corresponding
  CacheEntry from disk.  This doesn't work if the
  CacheEntry corresponds to a named memory buffer.  This
  patch changes the code so that if the UniqueID for the
  cache entry is invalid (i.e., it is not a disk file)
  the whole entry is treated as if it were invalid, which
  forces an in-memory copy of the buffer.

Also added test cases, using the new support committed in
236011.

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

9 years agoImplemented support for testing the ASTImporter's
Sean Callanan [Tue, 28 Apr 2015 18:24:12 +0000 (18:24 +0000)]
Implemented support for testing the ASTImporter's
ability to generate code that CodeGen likes.  Test
cases can use this functionality by calling

// RUN: %clang_cc1 -emit-obj -o /dev/null -ast-merge %t.1.ast -ast-merge %t.2.ast %s

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

9 years agoFix typo in comment.
Nico Weber [Tue, 28 Apr 2015 18:19:18 +0000 (18:19 +0000)]
Fix typo in comment.

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

9 years agoFix PR22047: ObjC: Method unavailability attribute doesn't work with overloaded methods
Jonathan Roelofs [Tue, 28 Apr 2015 18:04:44 +0000 (18:04 +0000)]
Fix PR22047: ObjC: Method unavailability attribute doesn't work with overloaded methods

http://reviews.llvm.org/D9261

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

9 years agoCombine instantiation context of field initializer with context of class.
Serge Pavlov [Tue, 28 Apr 2015 17:58:47 +0000 (17:58 +0000)]
Combine instantiation context of field initializer with context of class.

Inclass initializer is instantiated in its own LocalInstantiationScope. It
causes problems when instantiating local classes - when instantiation scope
is searched for DeclContext of the field, the search fails. As a solution,
the instantiation scope of field initializer is combined with its outer
scope.

This patch fixes PR23194.

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

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

9 years agoSilencing a -Wuninitialized warning in a different way. This replaces r235981, but...
Aaron Ballman [Tue, 28 Apr 2015 17:34:38 +0000 (17:34 +0000)]
Silencing a -Wuninitialized warning in a different way. This replaces r235981, but is still NFC.

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

9 years agoAVX-512: added intrinsics for KNL and SKX
Elena Demikhovsky [Tue, 28 Apr 2015 13:28:01 +0000 (13:28 +0000)]
AVX-512: added intrinsics for KNL and SKX
by Asaf Badouh (asaf.badouh@intel.com)

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

9 years ago[OPENMP] Fix crash on loop control vars explicitly marked as private.
Alexey Bataev [Tue, 28 Apr 2015 13:20:05 +0000 (13:20 +0000)]
[OPENMP] Fix crash on loop control vars explicitly marked as private.

It is allowed to mark loop control vars as private in 'private' or 'lastprivate' clause, so no need to assert here.

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

9 years agoSilencing a spurious -Wuninitialized warning with this local; NFC.
Aaron Ballman [Tue, 28 Apr 2015 12:36:54 +0000 (12:36 +0000)]
Silencing a spurious -Wuninitialized warning with this local; NFC.

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

9 years ago[ARM/AArch64] Enforce alignment for bitfielded structs
Bradley Smith [Tue, 28 Apr 2015 11:24:54 +0000 (11:24 +0000)]
[ARM/AArch64] Enforce alignment for bitfielded structs

When creating a global variable with a type of a struct with bitfields, we must
forcibly set the alignment of the global from the RecordDecl. We must do this so
that the proper bitfield alignment makes its way down to LLVM, since clang will
mangle the bitfields into one large type.

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