]> granicus.if.org Git - clang/log
clang
12 years agoAdded Documentation and ASan notes, clean-up of emtpy sections, couple of spelling... release_32 origin/release_32
Pawel Wodnicki [Thu, 20 Dec 2012 07:36:16 +0000 (07:36 +0000)]
Added Documentation and ASan notes, clean-up of emtpy sections, couple of spelling fixes

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

12 years agoAdded C11,C++11 and Python notes
Pawel Wodnicki [Wed, 19 Dec 2012 05:17:10 +0000 (05:17 +0000)]
Added C11,C++11 and Python notes

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

12 years agoMerging r170147: into the 3.2 release branch.
Pawel Wodnicki [Sun, 16 Dec 2012 15:59:27 +0000 (15:59 +0000)]
Merging r170147: into the 3.2 release branch.

Add support for current Ubuntu Quantal and the upcoming Raring.
Patch by Martin Nowack.

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

12 years agoMerging r169688: into 3.2 release branch.
Pawel Wodnicki [Mon, 10 Dec 2012 03:31:55 +0000 (03:31 +0000)]
Merging r169688: into 3.2 release branch.

PR14549. Don't assert if we see an incomplete decltype specifier at the end of the file.

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

12 years agoMerging r167766: into the 3.2 release branch.
Pawel Wodnicki [Wed, 5 Dec 2012 23:48:42 +0000 (23:48 +0000)]
Merging r167766: into the 3.2 release branch.

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/branches/release_32@169451 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCherry-picking r168297 pic.c
Pawel Wodnicki [Thu, 29 Nov 2012 18:50:34 +0000 (18:50 +0000)]
Cherry-picking r168297 pic.c

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

12 years agoMerging r167918: into the 3.2 release branch.
Pawel Wodnicki [Thu, 29 Nov 2012 14:56:07 +0000 (14:56 +0000)]
Merging r167918: into the 3.2 release branch.

When we have a MemberExpr referring to an overloaded static member function,
and we resolve it to a specific function based on the type which it's used as,
don't forget to mark it as referenced.

Fixes a regression introduced in r167514.

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

12 years agoMerging r168818: into the 3.2 release branch.
Pawel Wodnicki [Wed, 28 Nov 2012 23:44:46 +0000 (23:44 +0000)]
Merging r168818: into the 3.2 release branch.

PR13098: If we're instantiating an overloaded binary operator and we could
determine which member function would be the callee from within the template
definition, don't pass that function as a "non-member function" to
CreateOverloadedBinOp. Instead, just rely on it to select the member function
for itself.

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

12 years agoMerging r168303: into the 3.2 release branch.
Pawel Wodnicki [Wed, 28 Nov 2012 22:38:52 +0000 (22:38 +0000)]
Merging r168303: into the 3.2 release branch.

clang/test: Suppress two tests on LLP64 target, Windows x64.

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

12 years agoMerging r168674: into the 3.2 release branch.
Pawel Wodnicki [Wed, 28 Nov 2012 22:01:30 +0000 (22:01 +0000)]
Merging r168674: into the 3.2 release branch.

Fix the definition of the vfork() builtin on Haiku.  PR14378.

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

12 years agoMerging r168269: into the 3.2 release branch.
Pawel Wodnicki [Wed, 28 Nov 2012 20:50:18 +0000 (20:50 +0000)]
Merging r168269: into the 3.2 release branch.

Fix crash on end-of-file after \ in a char literal, fixes PR14369.

This makes LexCharConstant() look more like LexStringLiteral(), which doesn't
have this bug. Add tests for eof after \ for several other cases.

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

12 years agoMerging r168278: into 3.2 release branch.
Pawel Wodnicki [Tue, 27 Nov 2012 21:59:25 +0000 (21:59 +0000)]
Merging r168278: into 3.2 release branch.

clang/test/Sema/warn-documentation.cpp: Try to fix up the testcase in r168277.
-

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

12 years agoMerging r168277: into 3.2 release branch.
Pawel Wodnicki [Tue, 27 Nov 2012 21:56:38 +0000 (21:56 +0000)]
Merging r168277: into 3.2 release branch.

Documentation parsing: propely handle a lone '\endverbatim' and emit a warning.

We actually used to assert on this.

Thanks to NAKAMURA Takumi for noticing this!

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

12 years agoMerging r167935: into the 3.2 release branch.
Pawel Wodnicki [Mon, 26 Nov 2012 21:20:28 +0000 (21:20 +0000)]
Merging r167935: into the 3.2 release branch.

The ObjC++-to-C++ personality trick is only necessary on NeXT runtimes,
which is not coincidentally the only place it works, either (because
of how it tests for EH_TYPE symbols).

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

12 years agoMerging r167925: into the 3.2 release branch.
Pawel Wodnicki [Mon, 26 Nov 2012 21:17:11 +0000 (21:17 +0000)]
Merging r167925: into the 3.2 release branch.

Move some GNUStep-specific code out of CGObjCGNU.

Patch by Jonathan Schleifer.

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

12 years agoMerging r168355: into the 3.2 release branch.
Pawel Wodnicki [Thu, 22 Nov 2012 06:10:56 +0000 (06:10 +0000)]
Merging r168355: into the 3.2 release branch.

Update method calls to the new interface re r168354.

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

12 years agoMerging r168063 into 3.2 release branch
Pawel Wodnicki [Wed, 21 Nov 2012 08:33:40 +0000 (08:33 +0000)]
Merging r168063 into 3.2 release branch

block extended signatur option. Change previous option
to a cc1 -fencode-extended-block-signature and pass it
to cc1 and recognize this option to produce extended block
type signature. // rdar://12109031

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

12 years agoMerging r168297 into 3.2 release branch
Pawel Wodnicki [Wed, 21 Nov 2012 07:56:23 +0000 (07:56 +0000)]
Merging r168297 into 3.2 release branch

Completely re-work how the Clang driver interprets PIC and PIE options.

There were numerous issues here that were all entangled, and so I've
tried to do a general simplification of the logic.
1) The logic was mimicing actual GCC bugs, rather than "features". These
   have been fixed in trunk GCC, and this fixes Clang as well. Notably,
   the logic was always intended to be last-match-wins like any other
   flag.
2) The logic for handling '-mdynamic-no-pic' was preposterously unclear.
   It also allowed the use of this flag on non-Darwin platforms where it
   has no actual meaning. Now this option is handled directly based on
   tests of how llvm-gcc behaves, and it is only supported on Darwin.
3) The APIs for the Driver's ToolChains had the implementation ugliness
   of dynamic-no-pic leaking through them. They also had the
   implementation details of the LLVM relocation model flag names
   leaking through.
4) The actual results of passing these flags was incorrect on Darwin in
   many cases. For example, Darwin *always* uses PIC level 2 if it uses
   in PIC level, and Darwin *always* uses PIC on 64-bit regardless of
   the flags specified, including -fPIE. Darwin never compiles in PIE
   mode, but it can *link* in PIE mode.
5) Also, PIC was not always being enabled even when PIE was. This isn't
   a supported mode at all and may have caused some fallout in builds
   with complex PIC and PIE interactions.

The result is (I hope) cleaner and clearer for readers. I've also left
comments and tests about some of the truly strage behavior that is
observed on Darwin platforms. We have no real testing of Windows
platforms and PIC, but I don't have the tools handy to figure that out.
Hopefully others can beef up our testing here.

Unfortunately, I can't test this for every platform. =/ If folks have
dependencies on these flags that aren't covered by tests, they may
break. I've audited and ensured that all the changes in behavior of the
existing tests are intentional and good. In particular I've tried to
make sure the Darwin behavior (which is more suprising than the Linux
behavior) also matches that of 'gcc' on my mac.

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

12 years agoMerging r168124 into 3.2 release branch
Pawel Wodnicki [Mon, 19 Nov 2012 21:37:34 +0000 (21:37 +0000)]
Merging r168124 into 3.2 release branch

Fix PR14321, a crash when Clang is built with GCC 4.7 at -O1 or greater.

GCC 4.7 reuses stack slots fairly aggressively, which exposes more temporary
lifetime bugs.

No new test, this was caught by the existing CodeGenCXX/mangle-ms-templates.cpp.

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

12 years agoMerging r168024 from trunk into 3.2 release branch
Pawel Wodnicki [Mon, 19 Nov 2012 21:31:56 +0000 (21:31 +0000)]
Merging r168024 from trunk into 3.2 release branch

Revert r167567, restoring the ability of clang to run gcc in cases where it
can't handle the input file type. This resulted in PR14338.

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

12 years agoMerging r167884,r167920 from trunk into 3.2 release branch
Pawel Wodnicki [Mon, 19 Nov 2012 21:01:40 +0000 (21:01 +0000)]
Merging r167884,r167920 from trunk into 3.2 release branch

r167884

Don't try to save the assigned value in a Objective-C property assignment
if the type of the value is a non-trivial class type.  Fixes PR14318.

(There's a minor ObjC++ language change here: given that we can't save the
value, the type of the assignment expression is void in such cases.)

r167920

PR14279: Work around this major miscompilation by treating move operations as
non-trivial if they would not call a move operation, even if they would in fact
call a trivial copy operation. A proper fix is to follow, but this small
directed fix is intended for porting to the 3.2 release branch.

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

12 years agoMerge r168260 from trunk:
Benjamin Kramer [Mon, 19 Nov 2012 17:32:14 +0000 (17:32 +0000)]
Merge r168260 from trunk:

  Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.

  Also fixes a bit/byte mismatch when checking if a target supports atomic ops
  of a certain size.

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

12 years agoFix a Malloc Checker FP by tracking return values from initWithCharacter
Anna Zaks [Tue, 13 Nov 2012 20:22:03 +0000 (20:22 +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.

Commits: 167813, 167814, 167868

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

12 years ago[analyzer] Follow up to r167762 - precisely determine the adjustment
Anna Zaks [Tue, 13 Nov 2012 00:48:20 +0000 (00:48 +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/branches/release_32@167797 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMerged 167788, and bad CFG construction bug, into the LLVM 3.2 release.
Ted Kremenek [Tue, 13 Nov 2012 00:13:40 +0000 (00:13 +0000)]
Merged 167788, and bad CFG construction bug, into the LLVM 3.2 release.

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

12 years agoMerge in analyzer fix r167762, which was a recent regression.
Ted Kremenek [Mon, 12 Nov 2012 23:03:24 +0000 (23:03 +0000)]
Merge in analyzer fix r167762, which was a recent regression.

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

12 years agoMerge in r167749, per discussion on cfe-dev that we want -Wimplicit-fallthrough to...
Ted Kremenek [Mon, 12 Nov 2012 23:01:51 +0000 (23:01 +0000)]
Merge in r167749, per discussion on cfe-dev that we want -Wimplicit-fallthrough to only be active for C++11
until we come up with a language annotation for this warning that works outside of C++11.

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

12 years ago3.2 release branch r167703
Pawel Wodnicki [Mon, 12 Nov 2012 04:11:11 +0000 (04:11 +0000)]
3.2 release branch r167703

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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 years agoTest for source location range of new expressions fixed in r167507.
David Blaikie [Wed, 7 Nov 2012 17:17:07 +0000 (17:17 +0000)]
Test for source location range of new expressions fixed in r167507.

Patch by Philip Craig.

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

12 years ago[analyzer] Check that the argument to CFMakeCollectable is non-NULL.
Jordan Rose [Wed, 7 Nov 2012 17:12:37 +0000 (17:12 +0000)]
[analyzer] Check that the argument to CFMakeCollectable is non-NULL.

Patch by Sean McBride!

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