platform/upstream/llvm.git
11 years agoRemove test for the old EH system. It doesn't parse anymore.
Rafael Espindola [Wed, 3 Jul 2013 16:30:01 +0000 (16:30 +0000)]
Remove test for the old EH system. It doesn't parse anymore.

llvm-svn: 185551

11 years agoFix test: It was missing run lines and llvm-dis has no -disable-verify option.
Rafael Espindola [Wed, 3 Jul 2013 16:27:55 +0000 (16:27 +0000)]
Fix test: It was missing run lines and llvm-dis has no -disable-verify option.

llvm-svn: 185550

11 years agoUpdate error message; detach-keeps-stopped is also not on FreeBSD
Ed Maste [Wed, 3 Jul 2013 16:26:34 +0000 (16:26 +0000)]
Update error message; detach-keeps-stopped is also not on FreeBSD

llvm-svn: 185549

11 years agoWith CLANG_ENABLE_STATIC_ANALYZER=0, link clang properly and skip clang-check.
Jordan Rose [Wed, 3 Jul 2013 16:20:29 +0000 (16:20 +0000)]
With CLANG_ENABLE_STATIC_ANALYZER=0, link clang properly and skip clang-check.

Previously, the CMake build still tried to link clang against the static
analyzer libraries, even if CLANG_ENABLE_STATIC_ANALYZER was off.
Furthermore, clang-check depends on the analyzer, so it should be disabled
(in both CMake and configure builds).

In theory, clang-check could be made to conditionally include analyzer
support (like clang itself), but for now this at least gets a CMake ALL_BUILD
working.

Patch by Stephen Kelly, modified by me.

llvm-svn: 185548

11 years agoAdd support for gnu archives with a string table and no symtab.
Rafael Espindola [Wed, 3 Jul 2013 15:57:14 +0000 (15:57 +0000)]
Add support for gnu archives with a string table and no symtab.

While there, use early returns to reduce nesting.

llvm-svn: 185547

11 years agoMake llvm-nm return 1 on error.
Rafael Espindola [Wed, 3 Jul 2013 15:46:03 +0000 (15:46 +0000)]
Make llvm-nm return 1 on error.

This is a small compatibility improvement with gnu nm and makes llvm-nm more
useful as a testing tool.

llvm-svn: 185546

11 years agoFix PR16454: Don't #include altivec.h when preprocessing assembly.
Bill Schmidt [Wed, 3 Jul 2013 15:36:02 +0000 (15:36 +0000)]
Fix PR16454: Don't #include altivec.h when preprocessing assembly.

When the -maltivec flag is present, altivec.h is auto-included for the
compilation.  This is not appropriate when the job action is to
preprocess a file containing assembly code.  So don't do that.

I was unable to convert the test in the bug report into a regression
test.  The original symptom was exposed with:

  % touch x.S
  % ./bin/clang -target powerpc64-unknown-linux-gnu -maltivec -S -o - x.S

I tried this test (and numerous variants) on a PPC64 system:

----------------------------------------------------------------------------
// RUN: touch %t
// RUN: %clang -maltivec -S %t -o - | FileCheck %s

// Verify that assembling an empty file does not auto-include altivec.h.

// CHECK-NOT: static vector
----------------------------------------------------------------------------

However, this test passes for some reason even on a clang built
without the fix.  I'd be happy to add a test case but at this point
I'm not able to figure one out, and I don't want to hold up the patch
unnecessarily.  Please let me know if you have ideas.

Thanks,
Bill

llvm-svn: 185544

11 years agoTest case for PR7887 - failed with asm("")
Serge Pavlov [Wed, 3 Jul 2013 15:32:48 +0000 (15:32 +0000)]
Test case for PR7887 - failed with asm("")

llvm-svn: 185543

11 years ago[PowerPC] Remove dead code from PPCDAGToDAGISel::SelectSETCC
Ulrich Weigand [Wed, 3 Jul 2013 15:13:30 +0000 (15:13 +0000)]
[PowerPC] Remove dead code from PPCDAGToDAGISel::SelectSETCC

The subroutine getCRIdxForSetCC has a parameter "Other" and comment:

  If this returns with Other != -1, then the returned comparison
  is an or of two simpler comparisons.

However for at least the last five years this routine has never
returned a value of Other != -1; these cases are now handled
differently to begin with.

This patch removes the parameter and the code in SelectSETCC that
attempted to handle the Other != -1 case.

llvm-svn: 185541

11 years agoUse SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifyi...
Craig Topper [Wed, 3 Jul 2013 15:07:05 +0000 (15:07 +0000)]
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185540

11 years agoFix regular expression used by 'make update' to only look for 'I' and '?' at the...
Craig Topper [Wed, 3 Jul 2013 14:48:37 +0000 (14:48 +0000)]
Fix regular expression used by 'make update' to only look for 'I' and '?' at the start of svn info results and to check for spaces after 'I' instead of just after '?'.

Previously it was able to match 'I' anywhere in the filenames of the svn info results instead of just files that where ignored or unknown to svn. This would cause 'make update' to infinitely recurse if a file was modified with I anywhere in its name since svn info would return a Path pointing to the llvm root for those files.

llvm-svn: 185539

11 years ago[msan] Unpoison stack allocations and undef values in blacklisted functions.
Evgeniy Stepanov [Wed, 3 Jul 2013 14:39:14 +0000 (14:39 +0000)]
[msan] Unpoison stack allocations and undef values in blacklisted functions.

This changes behavior of -msan-poison-stack=0 flag from not poisoning stack
allocations to actively unpoisoning them.

llvm-svn: 185538

11 years agoWe don't need to know the OpenSUSE version, so don't parse it.
Rafael Espindola [Wed, 3 Jul 2013 14:14:00 +0000 (14:14 +0000)]
We don't need to know the OpenSUSE version, so don't parse it.

Patch by Johannes Obermayr.

llvm-svn: 185537

11 years ago[sanitizer] Fix memory leak in sanitizer_common discovered by LeakSanitizer.
Sergey Matveev [Wed, 3 Jul 2013 13:45:13 +0000 (13:45 +0000)]
[sanitizer] Fix memory leak in sanitizer_common discovered by LeakSanitizer.

llvm-svn: 185536

11 years agocpp11-migrate: Add Replace-AutoPtr Transform
Edwin Vane [Wed, 3 Jul 2013 13:21:24 +0000 (13:21 +0000)]
cpp11-migrate: Add Replace-AutoPtr Transform

Add a new transform to replace uses of 'std::auto_ptr' by 'std::unique_ptr'.
Copy-ctor and assign-operator are wrapped with a call to 'std::move()'.

Note that until header modification is ready it is not that useful, that's why
it's marked as (EXPERIMENTAL) in the command line description and a "Known
Limitations" section is present in the transform documentation.

Author: Guillaume Papin <guillaume.papin@epitech.eu>
llvm-svn: 185535

11 years ago[PECOFF][Writer] Fix SizeOfImage header. It should include the first unmapped page.
Rui Ueyama [Wed, 3 Jul 2013 12:55:56 +0000 (12:55 +0000)]
[PECOFF][Writer] Fix SizeOfImage header. It should include the first unmapped page.

llvm-svn: 185534

11 years ago[PowerPC] Make specialized AltiVec patterns isCodeGenOnly
Ulrich Weigand [Wed, 3 Jul 2013 12:51:09 +0000 (12:51 +0000)]
[PowerPC] Make specialized AltiVec patterns isCodeGenOnly

A couple of AltiVec patterns are just specialized forms of the
generic instruction pattern, and should therefore be marked
isCodeGenOnly to avoid confusing the asm parser:
VCFSX_0, VCTUXS_0, VCFUX_0, VCTSXS_0, and V_SETALLONES.

Noticed by inspection of the generated PPCGenAsmMatcher.inc.

llvm-svn: 185533

11 years ago[PowerPC] Support mtspr/mfspr in the asm parser
Ulrich Weigand [Wed, 3 Jul 2013 12:32:41 +0000 (12:32 +0000)]
[PowerPC] Support mtspr/mfspr in the asm parser

This adds support for the generic forms of mtspr/mfspr
for the asm parser.  The compiler will continue to use
the specialized patters for mtlr etc. since those are
needed to correctly describe data flow.

llvm-svn: 185532

11 years agoPrevent error message when formatting an empty file.
Daniel Jasper [Wed, 3 Jul 2013 12:22:18 +0000 (12:22 +0000)]
Prevent error message when formatting an empty file.

This fixes llvm.org/PR16514.

llvm-svn: 185531

11 years agoDon't insert confusing line breaks in comparisons.
Daniel Jasper [Wed, 3 Jul 2013 10:34:47 +0000 (10:34 +0000)]
Don't insert confusing line breaks in comparisons.

In general, clang-format breaks after an operator if the LHS spans
multiple lines. Otherwise, this can lead to confusing effects and
effectively hide the operator precendence, e.g. in

if (aaaaaaaaaaaaaa ==
        bbbbbbbbbbbbbb && c) { ...

This patch removes this rule for comparisons, if the LHS is not a binary
expression itself as many users were wondering why clang-format inserts
an unnecessary linebreak.

Before:
if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) >
    5) { ...

After:
if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) > 5) { ...

In the long run, we might:
- Want to do this for other binary expressions as well.
- Do this only if the RHS is short or even only if it is a literal.

llvm-svn: 185530

11 years ago[SystemZ] Fold more spills
Richard Sandiford [Wed, 3 Jul 2013 10:10:02 +0000 (10:10 +0000)]
[SystemZ] Fold more spills

Add a mapping from register-based <INSN>R instructions to the corresponding
memory-based <INSN>.  Use it to cut down on the number of spill loads.

Some instructions extend their operands from smaller fields, so this
required a new TSFlags field to say how big the unextended operand is.

This optimisation doesn't trigger for C(G)R and CL(G)R because in practice
we always combine those instructions with a branch.  Adding a test for every
other case probably seems excessive, but it did catch a missed optimisation
for DSGF (fixed in r185435).

llvm-svn: 185529

11 years agoThis corrects the implementation of Thumb ADR instruction. There are three issues:
Mihai Popa [Wed, 3 Jul 2013 09:21:44 +0000 (09:21 +0000)]
This  corrects the implementation of Thumb ADR instruction. There are three issues:
1. it should accept only 4-byte aligned addresses
2. the maximum offset should be 1020
3. it should be encoded with the offset scaled by two bits

llvm-svn: 185528

11 years agoARM: relax the atomic release barrier to "dmb ishst" on Swift
Tim Northover [Wed, 3 Jul 2013 09:20:36 +0000 (09:20 +0000)]
ARM: relax the atomic release barrier to "dmb ishst" on Swift

Swift cores implement store barriers that are stronger than the ARM
specification but weaker than general barriers. They are, in fact, just about
enough to provide the ordering needed for atomic operations with release
semantics.

This patch makes use of that quirk.

llvm-svn: 185527

11 years ago[SystemZ] Rename mapping table fields
Richard Sandiford [Wed, 3 Jul 2013 09:19:58 +0000 (09:19 +0000)]
[SystemZ] Rename mapping table fields

Rename Function->DispKey and PairType->DispSize.  I'd originally used
"Function" because I thought it might be useful for other InstMappings.
However, it turns out that having two very similar instructions with the
same Function makes it pretty useless for anything other than the displacement
size key.  Other InstMappings will want the key to be defined for only one
instruction in the pair.

No behavioural change intended.

llvm-svn: 185526

11 years ago[SystemZ] Fix caller-allocated save slot FIXME
Richard Sandiford [Wed, 3 Jul 2013 09:11:00 +0000 (09:11 +0000)]
[SystemZ] Fix caller-allocated save slot FIXME

Get rid of some old code (and associated FIXME) for handling the
caller-allocated register save area.  No behavioural change intended.

llvm-svn: 185525

11 years agoGuard a test that fails on a Release build.
Rui Ueyama [Wed, 3 Jul 2013 09:09:13 +0000 (09:09 +0000)]
Guard a test that fails on a Release build.

llvm-svn: 185524

11 years agoRemove unused field.
Eric Christopher [Wed, 3 Jul 2013 08:26:07 +0000 (08:26 +0000)]
Remove unused field.

llvm-svn: 185523

11 years ago[analyzer] Improve handling of noreturn destructors
Pavel Labath [Wed, 3 Jul 2013 08:23:49 +0000 (08:23 +0000)]
[analyzer] Improve handling of noreturn destructors

Summary:
The analyzer incorrectly handled noreturn destructors which were hidden inside
function calls. This happened because NoReturnFunctionChecker only listened for
PostStmt events, which are not executed for destructor calls. I've changed it to
listen to PostCall events, which should catch both cases.

Reviewers: jordan_rose

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

llvm-svn: 185522

11 years ago[PECOFF][Writer] Separate AtomChunk from SectionChunk.
Rui Ueyama [Wed, 3 Jul 2013 08:15:00 +0000 (08:15 +0000)]
[PECOFF][Writer] Separate AtomChunk from SectionChunk.

The optional data directory header contains addresses to some atoms such
as the import address table in data section. Such fields can naturally
be set by relocation if we make the optional data driectory as an atom.

Currently we assume that atoms are always in a section, so we can't create
a file header with atoms. This patch separates section chunk from atom
chunk, to allow atom-based file header.

llvm-svn: 185521

11 years agoConstify a few functions.
Eric Christopher [Wed, 3 Jul 2013 08:13:55 +0000 (08:13 +0000)]
Constify a few functions.

llvm-svn: 185520

11 years ago[XCore] Whitespace fixes, no functionality change.
Richard Osborne [Wed, 3 Jul 2013 07:49:03 +0000 (07:49 +0000)]
[XCore] Whitespace fixes, no functionality change.

llvm-svn: 185519

11 years ago[XCore] Add ISel pattern for LDWCP
Richard Osborne [Wed, 3 Jul 2013 07:48:50 +0000 (07:48 +0000)]
[XCore] Add ISel pattern for LDWCP

Patch by Robert Lytton.

llvm-svn: 185518

11 years agoAdd "explicit" to ctors where appropriate.
Rui Ueyama [Wed, 3 Jul 2013 07:32:40 +0000 (07:32 +0000)]
Add "explicit" to ctors where appropriate.

llvm-svn: 185517

11 years ago[PECOFF] Handle hint field in Hint/Name table in the import library.
Rui Ueyama [Wed, 3 Jul 2013 06:09:33 +0000 (06:09 +0000)]
[PECOFF] Handle hint field in Hint/Name table in the import library.

A hint is an index of the export pointer table in a DLL, at which
PE/COFF loader starts looking for a symbol name. The import library
comes with hints and symbol pairs, and as long as hints are in sync
with the actual symbol table in DLL, the symbols will be resolved
quickly. So, we shouldn't ignore hints but propagate them to an output.

llvm-svn: 185516

11 years ago[PECOFF][Writer] Simplifies the COFFBaseDefinedAtom ctor by defining a new class.
Rui Ueyama [Wed, 3 Jul 2013 05:44:09 +0000 (05:44 +0000)]
[PECOFF][Writer] Simplifies the COFFBaseDefinedAtom ctor by defining a new class.

llvm-svn: 185515

11 years agoUse SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the...
Craig Topper [Wed, 3 Jul 2013 05:18:47 +0000 (05:18 +0000)]
Use SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185514

11 years agoUse SmallVectorImpl instead of SmallVector as method argument to avoid specifying...
Craig Topper [Wed, 3 Jul 2013 05:16:59 +0000 (05:16 +0000)]
Use SmallVectorImpl instead of SmallVector as method argument to avoid specifying vector size.

llvm-svn: 185513

11 years agoUse SmallVectorImpl instead of SmallVector for iterators and references to avoid...
Craig Topper [Wed, 3 Jul 2013 05:11:49 +0000 (05:11 +0000)]
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

llvm-svn: 185512

11 years agoUse SmallVectorImpl::iterator/const_iterator instead of SmallVector
Eric Christopher [Wed, 3 Jul 2013 05:01:24 +0000 (05:01 +0000)]
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector
to avoid specifying the vector size.

llvm-svn: 185511

11 years agoRemove lldb's custom copy of the C++ demangler, used only on Mac
Jason Molenda [Wed, 3 Jul 2013 04:52:51 +0000 (04:52 +0000)]
Remove lldb's custom copy of the C++ demangler, used only on Mac
OS X.  Testsuite shows no change in results using the system runtime's
demangler.
<rdar://problem/12029914>

llvm-svn: 185510

11 years agoUse SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifyi...
Craig Topper [Wed, 3 Jul 2013 04:42:33 +0000 (04:42 +0000)]
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185509

11 years agoIntroduce some typedefs for DenseMaps containing SmallVectors so the vector size...
Craig Topper [Wed, 3 Jul 2013 04:40:27 +0000 (04:40 +0000)]
Introduce some typedefs for DenseMaps containing SmallVectors so the vector size doesn't have to repeated when creating iterators for the DenseMap.

llvm-svn: 185508

11 years agoReturn SmallVectorImpl& instead of SmallVector& in a couple places to avoid having...
Craig Topper [Wed, 3 Jul 2013 04:30:58 +0000 (04:30 +0000)]
Return SmallVectorImpl& instead of SmallVector& in a couple places to avoid having to specify the vector size in multiple places.

llvm-svn: 185507

11 years agoAdd a space between type and variable name. No functional change.
Craig Topper [Wed, 3 Jul 2013 04:27:31 +0000 (04:27 +0000)]
Add a space between type and variable name. No functional change.

llvm-svn: 185506

11 years agoUse SmallVectorImpl& instead of SmallVector& to avoid needlessly respecifying the...
Craig Topper [Wed, 3 Jul 2013 04:24:43 +0000 (04:24 +0000)]
Use SmallVectorImpl& instead of SmallVector& to avoid needlessly respecifying the small vector size.

llvm-svn: 185505

11 years agoUse SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifyi...
Craig Topper [Wed, 3 Jul 2013 04:17:25 +0000 (04:17 +0000)]
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185504

11 years agoChange the gettimeofday test to only test on a posix platform.
Michael Gottesman [Wed, 3 Jul 2013 04:15:22 +0000 (04:15 +0000)]
Change the gettimeofday test to only test on a posix platform.

llvm-svn: 185503

11 years agoAdded support in FunctionAttrs for adding relevant function/argument attributes for...
Michael Gottesman [Wed, 3 Jul 2013 04:00:54 +0000 (04:00 +0000)]
Added support in FunctionAttrs for adding relevant function/argument attributes for the posix call gettimeofday.

This implies annotating it as nounwind and its arguments as nocapture. To be
conservative, we do not annotate the arguments with noalias since some platforms
do not have restrict on the declaration for gettimeofday.

llvm-svn: 185502

11 years agoAdded posix function gettimeofday to LibFunc::Func for all platforms but Windows.
Michael Gottesman [Wed, 3 Jul 2013 04:00:51 +0000 (04:00 +0000)]
Added posix function gettimeofday to LibFunc::Func for all platforms but Windows.

*NOTE* In a recent version of posix, they added the restrict keyword to the
arguments for this function. From some spelunking it seems that on some
platforms, the call has restrict on its arguments and others it does not. Thus I
left off the restrict keyword from the function prototype in the comment.

llvm-svn: 185501

11 years agoAvoid doing a lot of computation when we have multiple ranges and
Eric Christopher [Wed, 3 Jul 2013 02:23:53 +0000 (02:23 +0000)]
Avoid doing a lot of computation when we have multiple ranges and
avoid adding information for the debug_inlined section when it isn't
going to be emitted anyhow.

llvm-svn: 185500

11 years agoSystemZInstrInfo.cpp: Tweak an assertion. [-Wunused-variable]
NAKAMURA Takumi [Wed, 3 Jul 2013 02:20:49 +0000 (02:20 +0000)]
SystemZInstrInfo.cpp: Tweak an assertion. [-Wunused-variable]

llvm-svn: 185499

11 years agoMove iterator to where it's used and update comments.
Eric Christopher [Wed, 3 Jul 2013 01:57:28 +0000 (01:57 +0000)]
Move iterator to where it's used and update comments.

llvm-svn: 185498

11 years agoMove instance variable before experimental section.
Eric Christopher [Wed, 3 Jul 2013 01:57:26 +0000 (01:57 +0000)]
Move instance variable before experimental section.

llvm-svn: 185497

11 years agoFix typo to make grep for DW_AT_comp_dir work without case-insensitive
Eric Christopher [Wed, 3 Jul 2013 01:57:23 +0000 (01:57 +0000)]
Fix typo to make grep for DW_AT_comp_dir work without case-insensitive
grep.

llvm-svn: 185496

11 years agoRemove unnecessary forward declare.
Eric Christopher [Wed, 3 Jul 2013 01:57:20 +0000 (01:57 +0000)]
Remove unnecessary forward declare.

llvm-svn: 185495

11 years agoFix ObjectFileELF crc32 code used when no build id is present.
Michael Sartain [Wed, 3 Jul 2013 01:52:14 +0000 (01:52 +0000)]
Fix ObjectFileELF crc32 code used when no build id is present.

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

llvm-svn: 185494

11 years agoFixed test options.
Serge Pavlov [Wed, 3 Jul 2013 01:43:57 +0000 (01:43 +0000)]
Fixed test options.

llvm-svn: 185493

11 years agoAdd a helpful comment.
Eric Christopher [Wed, 3 Jul 2013 01:22:29 +0000 (01:22 +0000)]
Add a helpful comment.

llvm-svn: 185492

11 years agoWorkaround for infinite recursion in InitOSO->GetByteSize->GetSymbolVendor.
Jim Ingham [Wed, 3 Jul 2013 01:21:46 +0000 (01:21 +0000)]
Workaround for infinite recursion in InitOSO->GetByteSize->GetSymbolVendor.

llvm-svn: 185491

11 years agoaddConstantValue, addConstantFPValue never returned anything but
Eric Christopher [Wed, 3 Jul 2013 01:08:30 +0000 (01:08 +0000)]
addConstantValue, addConstantFPValue never returned anything but
true, so remove the return value and propagate accordingly.

llvm-svn: 185490

11 years agoTrying to fix the bots
Manman Ren [Wed, 3 Jul 2013 00:16:11 +0000 (00:16 +0000)]
Trying to fix the bots

llvm-svn: 185489

11 years agoImport the builtin type prefix before we import the user expression prefix so that...
Greg Clayton [Wed, 3 Jul 2013 00:07:54 +0000 (00:07 +0000)]
Import the builtin type prefix before we import the user expression prefix so that the user expression prefix can use the uint, int, size_t, and other types without having to define them.

llvm-svn: 185488

11 years agoAllow typo correction to try removing nested name specifiers.
Kaelyn Uhrain [Tue, 2 Jul 2013 23:47:44 +0000 (23:47 +0000)]
Allow typo correction to try removing nested name specifiers.

The removal is tried by retrying the failed lookup of a correction
candidate with either the MemberContext or SS (CXXScopeSpecifier) or
both set to NULL if they weren't already. If the candidate identifier
is then looked up successfully, make a note in the candidate that the
SourceRange should include any existing nested name specifier even if
the candidate isn't adding a different one (i.e. the candidate has a
NULL NestedNameSpecifier).

Also tweak the diagnostic messages to differentiate between a suggestion
that just replaces the identifer but leaves the existing nested name
specifier intact and one that replaces the entire qualified identifier,
in cases where the suggested replacement is unqualified.

llvm-svn: 185487

11 years agoLook for corrections in enclosing namespaces that require a global NestedNameSpecifier.
Kaelyn Uhrain [Tue, 2 Jul 2013 23:47:35 +0000 (23:47 +0000)]
Look for corrections in enclosing namespaces that require a global NestedNameSpecifier.

CorrectTypo will now see and consider those corrections that are effectively
shadowed by other declarations in a closer context when resolved via an
unqualified lookup. This involves adding any parent namespaces to the set of
namespaces as fully-qualified name specifiers, and also adding potential
corrections that passed name lookup but were rejected by the given
CorrectionCandidateCallback into the set of failed corrections that should be
tried with the set of namespace specifiers.

llvm-svn: 185486

11 years agoDebug Info: use module flag to set up Dwarf version.
Manman Ren [Tue, 2 Jul 2013 23:40:10 +0000 (23:40 +0000)]
Debug Info: use module flag to set up Dwarf version.

Correctly handles ref_addr depending on the Dwarf version. Emit Dwarf with
version from module flag.

TODO: turn on/off features depending on the Dwarf version.
llvm-svn: 185484

11 years agoDebug Info: set default to gdwarf-2 for Darwin.
Manman Ren [Tue, 2 Jul 2013 23:15:25 +0000 (23:15 +0000)]
Debug Info: set default to gdwarf-2 for Darwin.

Darwin systems currently do not support dwarf version 3 or above. When we are
ready, we can bump the default to gdwarf-4 for Darwin.

For other systems, the default is dwarf version 3, if everything goes smoothly,
we can bump the version to 4.

rdar://13591116

llvm-svn: 185483

11 years agoFix comment.
Eric Christopher [Tue, 2 Jul 2013 21:36:07 +0000 (21:36 +0000)]
Fix comment.

llvm-svn: 185480

11 years agoFixed typo in LangRef where we were using _'' to quote instead of the correct _.
Michael Gottesman [Tue, 2 Jul 2013 21:32:56 +0000 (21:32 +0000)]
Fixed typo in LangRef where we were using _'' to quote instead of the correct _.

llvm-svn: 185479

11 years ago[PowerPC] PR16512 - Support TLS call sequences in the asm parser
Ulrich Weigand [Tue, 2 Jul 2013 21:31:59 +0000 (21:31 +0000)]
[PowerPC] PR16512 - Support TLS call sequences in the asm parser

This patch now adds support for recognizing TLS call sequences in
the asm parser.  This needs a new pattern BL8_TLS, which is like
BL8_NOP_TLS except without nop.  That pattern is used for the
asm parser only.

llvm-svn: 185478

11 years ago[PowerPC] Rework TLS call operand processing
Ulrich Weigand [Tue, 2 Jul 2013 21:31:04 +0000 (21:31 +0000)]
[PowerPC] Rework TLS call operand processing

As part of the global-dynamic and local-dynamic TLS sequences, we need
to use a special form of the call instruction:

 bl __tls_get_addr(sym@tlsld)
 bl __tls_get_addr(sym@tlsgd)

which generates two fixups.  The current implementation of this causes
problems with recognizing this form in the asm parser.  To fix this,
this patch reworks operand processing for this special form by using
a single operand to hold both __tls_get_addr and sym@tlsld and defining
a print method to output the above form, and an encoding method to
generate the two fixups.

As a side simplification, the patch replaces the two instruction
patterns BL8_NOP_TLSGD and BL8_NOP_TLSLD by a single BL8_NOP_TLS,
since the patterns already operate in an identical fashion (whether
we have a local-dynamic or global-dynamic symbol is already encoded
in the symbol modifier).

No change in code generation intended.

llvm-svn: 185477

11 years ago[PowerPC] Remove VK_PPC_TLSGD and VK_PPC_TLSLD
Ulrich Weigand [Tue, 2 Jul 2013 21:29:06 +0000 (21:29 +0000)]
[PowerPC] Remove VK_PPC_TLSGD and VK_PPC_TLSLD

The PowerPC-specific modifiers VK_PPC_TLSGD and VK_PPC_TLSLD
correspond exactly to the generic modifiers VK_TLSGD and VK_TLSLD.
This causes some confusion with the asm parser, since VK_PPC_TLSGD
is output as @tlsgd, which is then read back in as VK_TLSGD.

To avoid this confusion, this patch removes the PowerPC-specific
modifiers and uses the generic modifiers throughout.  (The only
drawback is that the generic modifiers are printed in upper case
while the usual convention on PowerPC is to use lower-case modifiers.
But this is just a cosmetic issue.)

llvm-svn: 185476

11 years agoSystemZ: Fold variable into assertion.
Benjamin Kramer [Tue, 2 Jul 2013 21:17:31 +0000 (21:17 +0000)]
SystemZ: Fold variable into assertion.

llvm-svn: 185475

11 years agoMark the "step over single instruction" plan private in the StopInfoWatchpoint::Perfo...
Jim Ingham [Tue, 2 Jul 2013 21:12:44 +0000 (21:12 +0000)]
Mark the "step over single instruction" plan private in the StopInfoWatchpoint::PerformAction to
ensure that the watchpoint not the step is reported as the stop reason.  Also, stash away & restore
the current stop reason just so it can't go away on us.

llvm-svn: 185474

11 years agoRedirect the output of a test to a temporary file to prevent messing up
Richard Trieu [Tue, 2 Jul 2013 20:49:10 +0000 (20:49 +0000)]
Redirect the output of a test to a temporary file to prevent messing up
the test environment.

llvm-svn: 185470

11 years agoDocumentation: Update docs for C++ lambdas to more accurately reflect
James Dennett [Tue, 2 Jul 2013 20:28:47 +0000 (20:28 +0000)]
Documentation: Update docs for C++ lambdas to more accurately reflect
C++1y init-capture support, and to improve some Doxygen markup.

llvm-svn: 185469

11 years agoAdorn make_unique with visibility and inline attributes
Marshall Clow [Tue, 2 Jul 2013 20:06:09 +0000 (20:06 +0000)]
Adorn make_unique with visibility and inline attributes

llvm-svn: 185468

11 years agoDon't free the C locale on NetBSD.
Joerg Sonnenberger [Tue, 2 Jul 2013 19:46:18 +0000 (19:46 +0000)]
Don't free the C locale on NetBSD.

llvm-svn: 185467

11 years agoFix build with LLVM_DISABLE_PYTHON
Ed Maste [Tue, 2 Jul 2013 19:30:52 +0000 (19:30 +0000)]
Fix build with LLVM_DISABLE_PYTHON

llvm-svn: 185466

11 years agoAdd 'REQUIRES: object-emission' to DebugInfo/inlined-arguments.ll.
Jyotsna Verma [Tue, 2 Jul 2013 19:21:43 +0000 (19:21 +0000)]
Add 'REQUIRES: object-emission' to DebugInfo/inlined-arguments.ll.

llvm-svn: 185465

11 years agoUpdated CREDITS.TXT
Howard Hinnant [Tue, 2 Jul 2013 19:01:59 +0000 (19:01 +0000)]
Updated CREDITS.TXT

llvm-svn: 185464

11 years agoDebug Info: clean up usage of Verify.
Manman Ren [Tue, 2 Jul 2013 19:01:53 +0000 (19:01 +0000)]
Debug Info: clean up usage of Verify.

No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.

llvm-svn: 185463

11 years agoUpdated CREDITS.TXT
Howard Hinnant [Tue, 2 Jul 2013 19:00:29 +0000 (19:00 +0000)]
Updated CREDITS.TXT

llvm-svn: 185462

11 years ago[PowerPC] Support TLS variables in debug info
Ulrich Weigand [Tue, 2 Jul 2013 18:47:35 +0000 (18:47 +0000)]
[PowerPC] Support TLS variables in debug info

This adds an implementation of getDebugThreadLocalSymbol for
(64-bit) PowerPC.  This needs to return a generic MCExpr
since on ppc64, we need to add a bias of 0x8000 to the
value returned by the R_PPC64_DTPREL64 relocation.

llvm-svn: 185461

11 years ago[DebugInfo] Allow getDebugThreadLocalSymbol to return MCExpr
Ulrich Weigand [Tue, 2 Jul 2013 18:47:09 +0000 (18:47 +0000)]
[DebugInfo] Allow getDebugThreadLocalSymbol to return MCExpr

This allows getDebugThreadLocalSymbol to return a generic MCExpr
instead of just a MCSymbolRefExpr.

This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.

llvm-svn: 185460

11 years ago[DebugInfo] Hold generic MCExpr in AddrPool
Ulrich Weigand [Tue, 2 Jul 2013 18:46:46 +0000 (18:46 +0000)]
[DebugInfo] Hold generic MCExpr in AddrPool

This changes the AddrPool infrastructure to enable it to hold
generic MCExpr expressions, not just MCSymbolRefExpr.

This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.

llvm-svn: 185459

11 years ago[DebugInfo] Introduce DIEExpr variant of DIEValue to hold MCExpr values
Ulrich Weigand [Tue, 2 Jul 2013 18:46:26 +0000 (18:46 +0000)]
[DebugInfo] Introduce DIEExpr variant of DIEValue to hold MCExpr values

This partially reverts r185202 and restores DIELabel to hold plain
MCSymbol references.  Instead, we add a new subclass DIEExpr of
DIEValue that can hold generic MCExpr references.

This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.

llvm-svn: 185458

11 years agoMatthew Dempsky: In libc++'s <locale>, there's already dependence on an snprintf_l
Howard Hinnant [Tue, 2 Jul 2013 18:42:28 +0000 (18:42 +0000)]
Matthew Dempsky:  In libc++'s <locale>, there's already dependence on an snprintf_l
implementation and all of the char buffers readily have their
allocated size available, so we can easily use snprintf_l instead of
sprintf_l.

This avoids OpenBSD's linker warnings against using sprintf and
vsprintf.
Howard:  Please consider a patch for CREDITS.TXT

llvm-svn: 185457

11 years agoDebug Info: cleanup
Manman Ren [Tue, 2 Jul 2013 18:37:35 +0000 (18:37 +0000)]
Debug Info: cleanup

llvm-svn: 185456

11 years agoAdd split symbol support to test makefile & add linux split symbol test case.
Michael Sartain [Tue, 2 Jul 2013 18:13:13 +0000 (18:13 +0000)]
Add split symbol support to test makefile & add linux split symbol test case.

llvm-svn: 185455

11 years ago[ms-cxxabi] Mangle variadic template parameter packs
Reid Kleckner [Tue, 2 Jul 2013 18:10:07 +0000 (18:10 +0000)]
[ms-cxxabi] Mangle variadic template parameter packs

Unlike Itanium, there is no code to indicate the beginning of a
parameter pack.  I tested this with MSVC 2013, which is the only version
that implements variadic templates so far.

This is needed to compile APInt.cpp for the MS C++ ABI.

Reviewers: timurrrr

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

llvm-svn: 185454

11 years agoAdd regression test for PR12331.
Richard Smith [Tue, 2 Jul 2013 18:08:50 +0000 (18:08 +0000)]
Add regression test for PR12331.

llvm-svn: 185453

11 years agoConstrain launch ~ operator to defined bits.
Howard Hinnant [Tue, 2 Jul 2013 18:01:41 +0000 (18:01 +0000)]
Constrain launch ~ operator to defined bits.

llvm-svn: 185452

11 years agoWindows support in thread::hardware_concurrency.
Howard Hinnant [Tue, 2 Jul 2013 17:53:48 +0000 (17:53 +0000)]
Windows support in thread::hardware_concurrency.

llvm-svn: 185451

11 years agoMore fixes for block mangling.
Eli Friedman [Tue, 2 Jul 2013 17:52:28 +0000 (17:52 +0000)]
More fixes for block mangling.

Make sure we properly treat names defined inside a block as local
names.  There are basically three fixes here.  One, correctly
treat blocks as a context where we need to use local-name mangling using
the new isLocalContainerContext helper. Two, make
CXXNameMangler::manglePrefix handle local names in a consistent way.
Three, extend CXXNameMangler::mangleLocalName so it can mangle a block
correctly.

llvm-svn: 185450

11 years agoBill Fisher: This patch fixes a bug where the regex parser doesn't advance the pointe...
Howard Hinnant [Tue, 2 Jul 2013 17:43:31 +0000 (17:43 +0000)]
Bill Fisher: This patch fixes a bug where the regex parser doesn't advance the pointer after reading the third character of an octal escape (in awk mode).

That is, regex{"\141", awk} results in the regular expression /a1/ instead of just /a/.

llvm-svn: 185449

11 years agoAdd SymbolVenderELF to autotools build (for Linux + FreeBSD)
Daniel Malea [Tue, 2 Jul 2013 17:36:01 +0000 (17:36 +0000)]
Add SymbolVenderELF to autotools build (for Linux + FreeBSD)
- should resolve the build failures on the linux clang buildbot

llvm-svn: 185448

11 years agoRevert (most of) r185393 and r185395.
Jakob Stoklund Olesen [Tue, 2 Jul 2013 17:31:58 +0000 (17:31 +0000)]
Revert (most of) r185393 and r185395.

"Remove floating point computations form SpillPlacement.cpp."

These commits caused test failures in lencod on clang-native-arm-lnt.

I suspect these changes are only exposing an existing issue, but
reverting anyway to keep the bots passing while we investigate.

llvm-svn: 185447

11 years agoFix to PR15826 - clang hits assert in clang::ASTContext::getASTRecordLayout.
Serge Pavlov [Tue, 2 Jul 2013 17:31:56 +0000 (17:31 +0000)]
Fix to PR15826 - clang hits assert in clang::ASTContext::getASTRecordLayout.

llvm-svn: 185446

11 years agoHexagon: Avoid unused variable warnings in Release builds.
Benjamin Kramer [Tue, 2 Jul 2013 17:24:00 +0000 (17:24 +0000)]
Hexagon: Avoid unused variable warnings in Release builds.

llvm-svn: 185445

11 years ago[analyzer] Pointers-to-members are (currently) Locs, not NonLocs.
Jordan Rose [Tue, 2 Jul 2013 16:50:24 +0000 (16:50 +0000)]
[analyzer] Pointers-to-members are (currently) Locs, not NonLocs.

While we don't model pointers-to-members besides "null" and "non-null",
we were using Loc symbols for valid pointers and NonLoc integers for the
null case. This hit the assert committed in r185401.

Fixed by using a true (Loc) null for null member pointers.

llvm-svn: 185444