]> granicus.if.org Git - clang/log
clang
11 years agoFix a Malloc Checker FP by tracking return values from initWithCharacter
Anna Zaks [Tue, 13 Nov 2012 03:18:01 +0000 (03:18 +0000)]
Fix a Malloc Checker FP by tracking return values from initWithCharacter
and other functions.

When these functions return null, the pointer is not freed by
them/ownership is not transfered. So we should allow the user to free
the pointer by calling another function when the return value is NULL.

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

11 years agoUse the 'count' attribute instead of the 'upper_bound' attribute.
Bill Wendling [Tue, 13 Nov 2012 02:31:58 +0000 (02:31 +0000)]
Use the 'count' attribute instead of the 'upper_bound' attribute.

If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the
same for both of them because we use the 'upper_bound' attribute. Instead use
the 'count' attrbute, which gives the correct number of elements in the array.
<rdar://problem/12566646>

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

11 years agoFix IR generation for bool on PPC (and any other target where bool is not 8 bits...
Eli Friedman [Tue, 13 Nov 2012 02:05:15 +0000 (02:05 +0000)]
Fix IR generation for bool on PPC (and any other target where bool is not 8 bits in memory).

PR11777.

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

11 years ago[preprocessor] When #including something that contributes no tokens at all,
Argyrios Kyrtzidis [Tue, 13 Nov 2012 01:03:15 +0000 (01:03 +0000)]
[preprocessor] When #including something that contributes no tokens at all,
don't recursively continue lexing.

This avoids a stack overflow with a sequence of many empty #includes.
rdar://11988695

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

11 years agoIn Lexer::LexTokenInternal, avoid code duplication; no functionality change.
Argyrios Kyrtzidis [Tue, 13 Nov 2012 01:02:40 +0000 (01:02 +0000)]
In Lexer::LexTokenInternal, avoid code duplication; no functionality change.

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

11 years agoDisable accelerator tables when compiling with LTO.
Bill Wendling [Tue, 13 Nov 2012 00:54:24 +0000 (00:54 +0000)]
Disable accelerator tables when compiling with LTO.

LTO doesn't generate correct accelerator tables. This is due to the general lack
correct of debug info for LTO. Disable it when using LTO.
<rdar://problem/12401423>

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

11 years agoFix some wrong-code bugs in implicitly-defined assignment operators:
Richard Smith [Tue, 13 Nov 2012 00:54:12 +0000 (00:54 +0000)]
Fix some wrong-code bugs in implicitly-defined assignment operators:
 - In C++11, perform overload resolution over all assignment operators, rather than just looking for copy/move assignment operators.
 - Clean up after temporaries produced by operator= immediately, rather than accumulating them until the end of the function.

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

11 years agoA couple of small fixes to r167783
Kaelyn Uhrain [Tue, 13 Nov 2012 00:18:47 +0000 (00:18 +0000)]
A couple of small fixes to r167783

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

11 years ago[analyzer] Address Jordan's feedback for r167780.
Anna Zaks [Tue, 13 Nov 2012 00:13:44 +0000 (00:13 +0000)]
[analyzer] Address Jordan's feedback for r167780.

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

11 years agoFix bad CFG construction bug when handling C++ 'try' statements.
Ted Kremenek [Tue, 13 Nov 2012 00:12:13 +0000 (00:12 +0000)]
Fix bad CFG construction bug when handling C++ 'try' statements.

This code assigned the last created CFGBlock* to the variable 'Block',
which is a scratch variable which is null'ed out after a block is
completed.  By assigning the last created block to 'Block', we start
editing a completed block, inserting CFGStmts that should be in
another block.  This was the case with 'try'.  The test case that
showed this had a while loop inside a 'try', and the logic before
the while loop was being included as part of the "condition block"
for the loop.  This showed up as a bogus dead store, but could
have lots of implications.

Turns out this bug was replicated a few times within CFG.cpp, so
I went and fixed up those as well.

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

11 years agoWhen filtering the list of associated namespaces so that we don't suggest people
Nick Lewycky [Tue, 13 Nov 2012 00:08:34 +0000 (00:08 +0000)]
When filtering the list of associated namespaces so that we don't suggest people
add functions to namespace 'std', also filter out namespaces with '__' anywhere
in the name.

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

11 years agoEnable C++11 attribute syntax for warn_unused_result and allow it to be
Kaelyn Uhrain [Mon, 12 Nov 2012 23:48:05 +0000 (23:48 +0000)]
Enable C++11 attribute syntax for warn_unused_result and allow it to be
applied to CXXRecordDecls, where functions with that return type will
inherit the warn_unused_result attribute.

Also includes a tiny fix (with no discernable behavior change for
existing code) to re-sync AttributeDeclKind enum and
err_attribute_wrong_decl_type with warn_attribute_wrong_decl_type since
the enum is used with both diagnostic messages to chose the correct
description.

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

11 years ago[analyzer] Follow up to r167762 - precisely determine the adjustment
Anna Zaks [Mon, 12 Nov 2012 23:40:29 +0000 (23:40 +0000)]
[analyzer] Follow up to r167762 - precisely determine the adjustment
conditions.

The adjustment is needed only in case of dynamic dispatch performed by
the analyzer - when the runtime declaration is different from the static
one.

Document this explicitly in the code (by adding a helper). Also, use
canonical Decls to avoid matching against the case where the definition
is different from found declaration.

This fix suppresses the testcase I added in r167762, so add another
testcase to make sure we do test commit r167762.

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

11 years agoFactor duplicated implicit memcpy call generation code out of copy/move
Richard Smith [Mon, 12 Nov 2012 23:33:00 +0000 (23:33 +0000)]
Factor duplicated implicit memcpy call generation code out of copy/move
assignment generation. This incidentally avoids reusing the same Expr* across
multiple statements in the same object; that was generating slightly broken
ASTs, but I couldn't trigger any observable bad behavior, so no test.

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

11 years agoFinish reverting r167761, it's causing test failures.
Eric Christopher [Mon, 12 Nov 2012 23:13:34 +0000 (23:13 +0000)]
Finish reverting r167761, it's causing test failures.

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

11 years agoRemove duplicated line.
Rafael Espindola [Mon, 12 Nov 2012 22:29:43 +0000 (22:29 +0000)]
Remove duplicated line.

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

11 years agoFix more try scoping bugs introduced by r167650.
David Blaikie [Mon, 12 Nov 2012 22:25:41 +0000 (22:25 +0000)]
Fix more try scoping bugs introduced by r167650.

Introduces more clear scoping flags & flag combinations which should hopefully
be more understandable.

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

11 years agoThat's causing an error.
Bill Wendling [Mon, 12 Nov 2012 22:14:27 +0000 (22:14 +0000)]
That's causing an error.

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

11 years ago[analyzer] Fix a regression (from r 165079): compare canonical types.
Anna Zaks [Mon, 12 Nov 2012 22:06:24 +0000 (22:06 +0000)]
[analyzer] Fix a regression (from r 165079): compare canonical types.

Suppresses a leak false positive (radar://12663777).

In addition, we'll need to rewrite the adjustReturnValue() method not to
return UnknownVal by default, but rather assert in cases we cannot
handle. To make it possible, we need to correctly handle some of the
edge cases we already know about.

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

11 years agoDon't test for incomplete types.
Bill Wendling [Mon, 12 Nov 2012 22:01:56 +0000 (22:01 +0000)]
Don't test for incomplete types.

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

11 years agoRemove abuse of hasTrivial*, and fix miscompile wherein global arrays with
Richard Smith [Mon, 12 Nov 2012 21:38:00 +0000 (21:38 +0000)]
Remove abuse of hasTrivial*, and fix miscompile wherein global arrays with
internal linkage, no uses, trivial construction, and nontrivial destruction
were not emitted.

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

11 years agoIf we encounter a fatal error, exit with status 70. For BSD systems this is
Chad Rosier [Mon, 12 Nov 2012 21:32:24 +0000 (21:32 +0000)]
If we encounter a fatal error, exit with status 70.  For BSD systems this is
defined as an internal software error.  This notifies the driver to report
diagnostics information.
rdar://11951540

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

11 years agoPer discussion on cfe-dev, re-enable suppression of -Wimplicit-fallthrough on C,...
Ted Kremenek [Mon, 12 Nov 2012 21:20:48 +0000 (21:20 +0000)]
Per discussion on cfe-dev, re-enable suppression of -Wimplicit-fallthrough on C, but also include dialects of C++ earlier than C++11.

There was enough consensus that we *can* get a good language solution
to have an annotation outside of C++11, and without this annotation
this warning doesn't quite mean's completeness criteria for this
kind of warning.  For now, restrict this warning to C++11 (where an
annotation exists), and make this the behavior for the LLVM 3.2 release.
Afterwards, we will hammer out a language solution that we are all
happy with.

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

11 years agoUpdate testcase to show that we don't emit an error for sizes <= 32-bits.
Bill Wendling [Mon, 12 Nov 2012 21:13:35 +0000 (21:13 +0000)]
Update testcase to show that we don't emit an error for sizes <= 32-bits.

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

11 years agoIf we encounter a fatal error, call the interrupt handler to ensure any
Chad Rosier [Mon, 12 Nov 2012 19:39:37 +0000 (19:39 +0000)]
If we encounter a fatal error, call the interrupt handler to ensure any
temporary files are removed.
rdar://12282296

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

11 years ago80 cols & unnecessary braces from r167736.
David Blaikie [Mon, 12 Nov 2012 19:32:32 +0000 (19:32 +0000)]
80 cols & unnecessary braces from r167736.

Post-commit review feedback by Eli Friedman.

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

11 years agoCorrect printing of nested anonymous type member accesses.
David Blaikie [Mon, 12 Nov 2012 19:12:12 +0000 (19:12 +0000)]
Correct printing of nested anonymous type member accesses.

Patch by Florent Bruneau!

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

11 years agoThe register constraint could mean a 16- or 8-bit register.
Bill Wendling [Mon, 12 Nov 2012 18:52:32 +0000 (18:52 +0000)]
The register constraint could mean a 16- or 8-bit register.

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

11 years agoCheck that the input size is correct for the given constraint.
Bill Wendling [Mon, 12 Nov 2012 06:42:51 +0000 (06:42 +0000)]
Check that the input size is correct for the given constraint.

The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
place a 64-bit value into the 32-bit register. Error out instead of causing the
compiler to spew general badness.
<rdar://problem/12415959>

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

11 years agoRemove calls to getMostRecentDecl. The case they were added for in r117526 are
Rafael Espindola [Mon, 12 Nov 2012 04:32:23 +0000 (04:32 +0000)]
Remove calls to getMostRecentDecl. The case they were added for in r117526 are
now covered by attribute merging.

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

11 years agoIn Sema::MergeVarDecl we handle merging of storage classes and visibility
Rafael Espindola [Mon, 12 Nov 2012 04:10:23 +0000 (04:10 +0000)]
In Sema::MergeVarDecl we handle merging of storage classes and visibility
attributes. In cases where the merged declaration is fully equivalent to the
two original ones, some of the code was getLVForDecl was duplicated.

Cases that are still handled in getLVForDecl are things like

__private_extern__ int N;
int N;

For which we cannot produce a single merged decl with all the information.

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

11 years ago[NVPTX] Fix const modifier on builtins
Justin Holewinski [Mon, 12 Nov 2012 03:16:56 +0000 (03:16 +0000)]
[NVPTX] Fix const modifier on builtins

Some NVVM intrinsics were incorrectly labeled.

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

11 years agoFix binding of nodes in case of forEach..() matchers.
Daniel Jasper [Sun, 11 Nov 2012 22:14:55 +0000 (22:14 +0000)]
Fix binding of nodes in case of forEach..() matchers.

When recursively visiting the generated matches, the aggregated bindings need
to be copied during the recursion. Otherwise, we they might not be properly
overwritten (which is shown by the test), or there might be bound nodes present
that were bound on a different matching branch.

Review: http://llvm-reviews.chandlerc.com/D112

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

11 years agoRemove unneeded includes from IdentifierTable
Nico Weber [Sun, 11 Nov 2012 21:39:39 +0000 (21:39 +0000)]
Remove unneeded includes from IdentifierTable

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

11 years agoDelete comment reference to non-existent method
Nico Weber [Sun, 11 Nov 2012 21:02:03 +0000 (21:02 +0000)]
Delete comment reference to non-existent method

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

11 years agos/BCPLComment/LineComment/
Nico Weber [Sun, 11 Nov 2012 07:02:14 +0000 (07:02 +0000)]
s/BCPLComment/LineComment/

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

11 years agoFileCheckize test
Nico Weber [Sun, 11 Nov 2012 01:35:05 +0000 (01:35 +0000)]
FileCheckize test

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

11 years agoFix a typo which Matt pointed out.
Richard Smith [Sun, 11 Nov 2012 00:28:33 +0000 (00:28 +0000)]
Fix a typo which Matt pointed out.

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

11 years agoobjective-C blocks: Change BLOCK_HAS_EXTENDED_LAYOUT to be 1<<31.
Fariborz Jahanian [Sat, 10 Nov 2012 18:30:40 +0000 (18:30 +0000)]
objective-C blocks: Change BLOCK_HAS_EXTENDED_LAYOUT to be 1<<31.
lower 24bit is currently being used.

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

11 years agoRework my implementation of circular-reference finding to not use
Douglas Gregor [Sat, 10 Nov 2012 07:24:09 +0000 (07:24 +0000)]
Rework my implementation of circular-reference finding to not use
CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the
failure introduced in r167651.

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

11 years agoAdd clang support of RTM from TSX
Michael Liao [Sat, 10 Nov 2012 05:17:46 +0000 (05:17 +0000)]
Add clang support of RTM from TSX

- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature
- Builtin macro '__RTM__' is defined if RTM feature is enabled
- RTM intrinsic header is added and introduces 3 new intrinsics, namely
  '_xbegin', '_xend', and '_xabort'.
- 3 new builtins are added to keep compatible with gcc, namely
  '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'.
- Test cases for pre-defined macro and new intrinsic codegen are added.

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

11 years ago-momit-leaf-frame-pointer is a -m option, not a -f option.
Richard Smith [Sat, 10 Nov 2012 04:54:44 +0000 (04:54 +0000)]
-momit-leaf-frame-pointer is a -m option, not a -f option.

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

11 years agoRevert "Disable -Wimplicit-fallthrough when not using C++.", pending further discussi...
Ted Kremenek [Sat, 10 Nov 2012 04:03:41 +0000 (04:03 +0000)]
Revert "Disable -Wimplicit-fallthrough when not using C++.", pending further discussion on cfe-dev.

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

11 years agoAdd a few more test cases for verifying -fno-builtin.
Meador Inge [Sat, 10 Nov 2012 03:56:55 +0000 (03:56 +0000)]
Add a few more test cases for verifying -fno-builtin.

Some holes in testing where discovered while working on the LLVM library
call simplifiers.

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

11 years agoDisable -Wimplicit-fallthrough when not using C++.
Ted Kremenek [Sat, 10 Nov 2012 01:47:40 +0000 (01:47 +0000)]
Disable -Wimplicit-fallthrough when not using C++.

The rationale is that there is no good workflow to silence the warning
for specific cases, other than using pragmas.  This is because the
attribute to decorate an explicit fall through is only available
in C++11.

By that argument, this should probably also be disabled unless one
is using C++11, but apparently there is an explicit test case for
this warning when using C++98.  This will require further discussion
on cfe-commits.

Fixes: <rdar://problem/12584746>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167655 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[analyzer] When invalidating symbolic offset regions, take fields into account.
Jordan Rose [Sat, 10 Nov 2012 01:40:08 +0000 (01:40 +0000)]
[analyzer] When invalidating symbolic offset regions, take fields into account.

Previously, RegionStore was being VERY conservative in saying that because
p[i].x and p[i].y have a concrete base region of 'p', they might overlap.
Now, we check the chain of fields back up to the base object and check if
they match.

This only kicks in when dealing with symbolic offset regions because
RegionStore's "base+offset" representation of concrete offset regions loses
all information about fields. In cases where all offsets are concrete
(s.x and s.y), RegionStore will already do the right thing, but mixing
concrete and symbolic offsets can cause bindings to be invalidated that
are known to not overlap (e.g. p[0].x and p[i].y).
This additional refinement is tracked by <rdar://problem/12676180>.

<rdar://problem/12530149>

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

11 years agoHandle redeclarations of catch variables in catch blocks.
David Blaikie [Sat, 10 Nov 2012 01:38:24 +0000 (01:38 +0000)]
Handle redeclarations of catch variables in catch blocks.

Fix to regression caused by r167650, caught by Richard Smith in code review.

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

11 years agoDiagnostic circular inheritance involving dependent base classes. We
Douglas Gregor [Sat, 10 Nov 2012 01:18:17 +0000 (01:18 +0000)]
Diagnostic circular inheritance involving dependent base classes. We
would have diagnosed this at instantiation time anyway, if only we
didn't hang on all of these test cases. Fixes <rdar://problem/12629723>

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

11 years agoPR14296: function parameter name collisions in function try/catch
David Blaikie [Sat, 10 Nov 2012 01:04:23 +0000 (01:04 +0000)]
PR14296: function parameter name collisions in function try/catch

C++11 3.3.3/2 "A parameter name shall not be redeclared in the outermost block
of the function definition nor in the outermost block of any handler associated
with a function-try-block."

It's not totally clear to me whether the "FIXME" case is covered by this, but
Richard Smith thinks it probably should be. It's just a bit more involved to
fix that case.

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

11 years agoMake __LDBL_MAX__ etc. have the correct type on targets where long double/double...
Eli Friedman [Sat, 10 Nov 2012 00:20:38 +0000 (00:20 +0000)]
Make __LDBL_MAX__ etc. have the correct type on targets where long double/double/etc. have the same format.  PR14285.

Based on patch by Jeroen Dobbelaere.

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

11 years ago-Wobjc-literal-compare: look through implicit casts.
Jordan Rose [Fri, 9 Nov 2012 23:55:21 +0000 (23:55 +0000)]
-Wobjc-literal-compare: look through implicit casts.

This warning was failing to fire under ARC because of the implicit
lifetime casts added around the object literal expression.

<rdar://problem/11300873>, again.

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

11 years ago[NVPTX] Add __nvvm_* intrinsics as Clang builtins
Justin Holewinski [Fri, 9 Nov 2012 23:50:51 +0000 (23:50 +0000)]
[NVPTX] Add __nvvm_* intrinsics as Clang builtins

Fixes bug 13354.

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

11 years agoDocument -W in clang --help. Also make the help text more consistent (don't end descr...
Richard Smith [Fri, 9 Nov 2012 23:30:30 +0000 (23:30 +0000)]
Document -W in clang --help. Also make the help text more consistent (don't end descriptions in periods, use | to separate possible values).

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

11 years agoDon't include the help for -mips* in clang --help. These are just aliases for other...
Richard Smith [Fri, 9 Nov 2012 23:26:04 +0000 (23:26 +0000)]
Don't include the help for -mips* in clang --help. These are just aliases for other options, and not common enough to be worth including here.

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

11 years ago-Wlarge-by-value-copy may be awesome, but it really shouldn't be the one and
Richard Smith [Fri, 9 Nov 2012 23:18:31 +0000 (23:18 +0000)]
-Wlarge-by-value-copy may be awesome, but it really shouldn't be the one and
only -W flag which clang --help lists.

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

11 years agoPR13788: Don't perform checks on the initializer of a dependently-typed
Richard Smith [Fri, 9 Nov 2012 23:03:14 +0000 (23:03 +0000)]
PR13788: Don't perform checks on the initializer of a dependently-typed
variable. Previously we didn't notice the type was dependent if the only
dependence came from an array bound.

Patch by Brian Brooks!

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

11 years agoRemove leftover code.
Argyrios Kyrtzidis [Fri, 9 Nov 2012 23:02:10 +0000 (23:02 +0000)]
Remove leftover code.

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

11 years agoAdd lldb data formatters for clang classes, starting with SourceLocation.
Argyrios Kyrtzidis [Fri, 9 Nov 2012 22:59:01 +0000 (22:59 +0000)]
Add lldb data formatters for clang classes, starting with SourceLocation.

When installed, instead of getting this:

(lldb) p Tok.Loc
(clang::SourceLocation) $0 = {
  (unsigned int) ID = 123582
}

you'll get:

(lldb) p Tok.Loc
(clang::SourceLocation) $4 = "/usr/include/i386/_types.h:37:1" (offset: 123582, file)

This depends on r167629.

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

11 years agoRemove --help text for deprecated sanitizer options, add --help text for -fsanitize=.
Richard Smith [Fri, 9 Nov 2012 22:50:51 +0000 (22:50 +0000)]
Remove --help text for deprecated sanitizer options, add --help text for -fsanitize=.

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

11 years agoPR14303: Add a NoDriverOption flag to those options which are not accepted by
Richard Smith [Fri, 9 Nov 2012 22:36:44 +0000 (22:36 +0000)]
PR14303: Add a NoDriverOption flag to those options which are not accepted by
the driver (the options defined in CC1Options.td) and exclude their help from
"clang --help".

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

11 years agoAdd string to try and fix build from r167629.
Chad Rosier [Fri, 9 Nov 2012 20:00:52 +0000 (20:00 +0000)]
Add string to try and fix build from r167629.

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

11 years agoAdd a SourceLocation::printToString() that returns in a std::string what dump()
Argyrios Kyrtzidis [Fri, 9 Nov 2012 19:40:48 +0000 (19:40 +0000)]
Add a SourceLocation::printToString() that returns in a std::string what dump()
writes to stderr; for debugging purposes.

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

11 years agoAdd a FileCharacteristic parameter to SourceManager::createFileIDForMemBuffer
Argyrios Kyrtzidis [Fri, 9 Nov 2012 19:40:45 +0000 (19:40 +0000)]
Add a FileCharacteristic parameter to SourceManager::createFileIDForMemBuffer
for completeness and use it in CompilerInstance::InitializeSourceManager if
the input is a memory buffer.

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

11 years agoTurn FrontendInputFile into an immutable class and have it also accept
Argyrios Kyrtzidis [Fri, 9 Nov 2012 19:40:39 +0000 (19:40 +0000)]
Turn FrontendInputFile into an immutable class and have it also accept
a memory buffer instead of only a filename.

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

11 years agoMake CompilerInstance::InitializeSourceManager accept a FrontendInputFile,
Argyrios Kyrtzidis [Fri, 9 Nov 2012 19:40:33 +0000 (19:40 +0000)]
Make CompilerInstance::InitializeSourceManager accept a FrontendInputFile,
no functionality change.

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

11 years agoDon't use so many bits.
Rafael Espindola [Fri, 9 Nov 2012 19:03:35 +0000 (19:03 +0000)]
Don't use so many bits.

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

11 years agoImplement -mstrict-align using '-backend-option -arm-strict-align' as this saves
Chad Rosier [Fri, 9 Nov 2012 18:27:01 +0000 (18:27 +0000)]
Implement -mstrict-align using '-backend-option -arm-strict-align' as this saves
us from having to make any backend changes.

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

11 years agoAdd test case for r167619.
Chad Rosier [Fri, 9 Nov 2012 17:39:51 +0000 (17:39 +0000)]
Add test case for r167619.

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

11 years ago[driver] Add a -mstrict-align compiler option for ARM targets.
Chad Rosier [Fri, 9 Nov 2012 17:29:19 +0000 (17:29 +0000)]
[driver] Add a -mstrict-align compiler option for ARM targets.
rdar://12340498

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

11 years agoImproved support for removing the comma preceding __VA_ARGS__ where __VA_ARGS__
Andy Gibbs [Fri, 9 Nov 2012 13:24:30 +0000 (13:24 +0000)]
Improved support for removing the comma preceding __VA_ARGS__ where __VA_ARGS__
is empty in a variadic macro expansion.  This fixes a divergence in support for
the ", ## __VA_ARGS__" GCC extension which differed in behaviour when in strict
C99 mode (note: there is no change in behaviour has been made in the gnu99 mode
that clang uses by default).  In addition, there is improved support for the
Microsoft alternative extension ", __VA_ARGS__".

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

11 years agoUse isInvalidDecl() instead of isStatic() as suggested by dblaikie.
Nico Weber [Fri, 9 Nov 2012 08:38:04 +0000 (08:38 +0000)]
Use isInvalidDecl() instead of isStatic() as suggested by dblaikie.

I couldn't think of a way to make an operator() invalid without returning
earlier from this function other than making it static, so no new test.

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

11 years agoDon't crash on calling static member overloaded operator, PR14120
Nico Weber [Fri, 9 Nov 2012 06:06:14 +0000 (06:06 +0000)]
Don't crash on calling static member overloaded operator, PR14120

Patch from Brian Brooks!

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

11 years agoRemove old driver code to grab the iOS simulator version from the -D option.
Bob Wilson [Fri, 9 Nov 2012 01:59:30 +0000 (01:59 +0000)]
Remove old driver code to grab the iOS simulator version from the -D option.

We can now rely on the -mios-simulator-version-min command line option
and remove the awful hack. <rdar://problem/10304510>

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

11 years ago[ms] Implement int64_t version of mangleNumber() in terms of the APSInt version.
Nico Weber [Fri, 9 Nov 2012 00:05:56 +0000 (00:05 +0000)]
[ms] Implement int64_t version of mangleNumber() in terms of the APSInt version.

No intended functionality change.

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

11 years ago[Windows] Fix mangling of number literal '0'
Nico Weber [Thu, 8 Nov 2012 23:38:59 +0000 (23:38 +0000)]
[Windows] Fix mangling of number literal '0'

Do this by making the mangleNumber(APSInt) overload look like
the int64_t version. (The latter should probably just delegate
to the former).

Test from Evgeny Eltsin!

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

11 years agoRemove more code related to invoking llvm-gcc. <rdar://problem/11991320>
Bob Wilson [Thu, 8 Nov 2012 23:21:22 +0000 (23:21 +0000)]
Remove more code related to invoking llvm-gcc. <rdar://problem/11991320>

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

11 years agoFix a source range regression in C++ new expressions with call initializers.
David Blaikie [Thu, 8 Nov 2012 22:53:48 +0000 (22:53 +0000)]
Fix a source range regression in C++ new expressions with call initializers.

Introduced in r167507, discovered in review by Abramo Bagnara.

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

11 years agoFix a bug I found while preparing my devmtg talk: When passing NULL to a
Matt Beaumont-Gay [Thu, 8 Nov 2012 20:50:02 +0000 (20:50 +0000)]
Fix a bug I found while preparing my devmtg talk: When passing NULL to a
function that takes a const Foo&, where Foo is convertible from a large number
of pointer types, we print ALL the overloads, no matter the setting of
-fshow-overloads.

There is potential follow-on work in unifying the "print candidates, but not
too many" logic between OverloadCandidateSet::NoteCandidates and
ImplicitConversionSequence::DiagnoseAmbiguousConversion.

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

11 years agollvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstP...
NAKAMURA Takumi [Thu, 8 Nov 2012 20:34:25 +0000 (20:34 +0000)]
llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware.

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

11 years agoLiteralSupport: Don't overflow the temporary buffer when decoding invalid string...
Benjamin Kramer [Thu, 8 Nov 2012 19:22:31 +0000 (19:22 +0000)]
LiteralSupport: Don't overflow the temporary buffer when decoding invalid string parts.

Instead just use a dummy buffer, we're not going to use the decoded string anyways.
Fixes PR14292.

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

11 years agoLiteralSupport: Clean up style violations. No functionality change.
Benjamin Kramer [Thu, 8 Nov 2012 19:22:26 +0000 (19:22 +0000)]
LiteralSupport: Clean up style violations. No functionality change.

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

11 years agoAllow to pass from syntactic form of InitListExpr to semantic form (just as viceversa...
Abramo Bagnara [Thu, 8 Nov 2012 18:41:43 +0000 (18:41 +0000)]
Allow to pass from syntactic form of InitListExpr to semantic form (just as viceversa). No functionality change.

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

11 years agoAvoid to write function name in comment. Thanks to Dmitri Gribenko.
Abramo Bagnara [Thu, 8 Nov 2012 16:27:30 +0000 (16:27 +0000)]
Avoid to write function name in comment. Thanks to Dmitri Gribenko.

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

11 years agoReadded line removed by mistake.
Abramo Bagnara [Thu, 8 Nov 2012 16:01:51 +0000 (16:01 +0000)]
Readded line removed by mistake.

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

11 years agoFixed converted ConstantArrayTypeLoc range. Added a missing testcase for ConstructorD...
Abramo Bagnara [Thu, 8 Nov 2012 14:44:42 +0000 (14:44 +0000)]
Fixed converted ConstantArrayTypeLoc range. Added a missing testcase for ConstructorDecl source range.

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

11 years agoFixed range of implicit MemberExpr.
Abramo Bagnara [Thu, 8 Nov 2012 13:52:58 +0000 (13:52 +0000)]
Fixed range of implicit MemberExpr.

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

11 years agoSet TLSSupported to false on Haiku.
Benjamin Kramer [Thu, 8 Nov 2012 12:59:15 +0000 (12:59 +0000)]
Set TLSSupported to false on Haiku.

Haiku does not support this (yet). Leaving it set to true leads to
configure scripts detecting __thread being available and Clang emitting
code for it, resulting in binaries the runtime_loader will refuse to
load.

Patch by Jonathan Schleifer!

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

11 years agoDriver/Darwin: The -arch argument values aren't exactly the arch names from a
Daniel Dunbar [Thu, 8 Nov 2012 03:38:26 +0000 (03:38 +0000)]
Driver/Darwin: The -arch argument values aren't exactly the arch names from a
triple.

 - Translate the special case of powerpc to its expected -arch name.

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

11 years agoRip out a bunch of code for invoking gcc from clang.
Bob Wilson [Thu, 8 Nov 2012 01:03:34 +0000 (01:03 +0000)]
Rip out a bunch of code for invoking gcc from clang.

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

11 years agoRemove code to fall back to llvm-gcc for i386 kexts.
Bob Wilson [Thu, 8 Nov 2012 01:03:29 +0000 (01:03 +0000)]
Remove code to fall back to llvm-gcc for i386 kexts.

More cleanups to follow in separate commits....

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

11 years agoPR14284: crash on ext-valid returning NULL from a void function
David Blaikie [Thu, 8 Nov 2012 00:41:20 +0000 (00:41 +0000)]
PR14284: crash on ext-valid returning NULL from a void function

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

11 years agoWhen deciding whether to convert an array construction loop into a memcpy, look
Richard Smith [Wed, 7 Nov 2012 23:56:21 +0000 (23:56 +0000)]
When deciding whether to convert an array construction loop into a memcpy, look
at whether the *selected* constructor would be trivial rather than considering
whether the array's element type has *any* non-trivial constructors of the
relevant kind.

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

11 years agoForce C89 for c-index-test.c
Dmitri Gribenko [Wed, 7 Nov 2012 23:52:25 +0000 (23:52 +0000)]
Force C89 for c-index-test.c

MSVC supports only C89, so it is important to keep c-index-test.c
buildable with C89.  However, Clang defaults to C99, so while building
Clang with Clang one can introduce C99 constructs into c-index-test.c
without noticing.

Thanks to Nakamura Takumi for helping with MSVC bits.

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

11 years ago[Driver] Fix -Wp,-MMD pr13959
Michael J. Spencer [Wed, 7 Nov 2012 23:37:14 +0000 (23:37 +0000)]
[Driver] Fix -Wp,-MMD pr13959

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

11 years agoReduce nesting. No functionality change.
Nico Weber [Wed, 7 Nov 2012 21:31:36 +0000 (21:31 +0000)]
Reduce nesting. No functionality change.

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

11 years agoWhen template deduction fails on a derived class, try a template deduction on
Richard Trieu [Wed, 7 Nov 2012 21:17:13 +0000 (21:17 +0000)]
When template deduction fails on a derived class, try a template deduction on
the base class.  If the base class deduction succeeds, use those results.  If
it fails, keep using the results from the derived class template deduction.

This prevents an assertion later where the type of deduction failure doesn't
match up with the template deduction info.

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

11 years agoobjective-C blocks: bring back the CharUnit patch for
Fariborz Jahanian [Wed, 7 Nov 2012 20:00:32 +0000 (20:00 +0000)]
objective-C blocks: bring back the CharUnit patch for
captured block variable layout meta-data. No intended change
in functionality.

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

11 years agoPR12713 - crash on invalid due to unmatched parens in decltype
David Blaikie [Wed, 7 Nov 2012 19:08:05 +0000 (19:08 +0000)]
PR12713 - crash on invalid due to unmatched parens in decltype

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

11 years agoobjective-C modern translator. Start the line
Fariborz Jahanian [Wed, 7 Nov 2012 18:15:53 +0000 (18:15 +0000)]
objective-C modern translator. Start the line
directive on a new line.

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

11 years agoWhen loading a module fails because it is out of date, rebuild that
Douglas Gregor [Wed, 7 Nov 2012 17:46:15 +0000 (17:46 +0000)]
When loading a module fails because it is out of date, rebuild that
module in place. <rdar://problem/10138913>

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