Peter Collingbourne
a99fdcf93e
Implement GNU C extension: two types are compatible if they appear
...
as a function argument, one of the types is a transparent union type
and the other type is compatible with a union member
llvm-svn: 117243
2010-10-24 18:30:18 +00:00
Argyrios Kyrtzidis
e16a5300ba
Keep track in chained PCH of implicit members that were added after the definition was completed.
...
llvm-svn: 117240
2010-10-24 17:26:54 +00:00
Argyrios Kyrtzidis
d170d844c4
Start fleshing out ASTMutationListener; notify when a tag definition is completed.
...
In that case a chained PCH will record the updates to the DefinitionData pointer of forward references.
If a forward reference mutated into a definition re-write it into the chained PCH, this is too big of a change.
llvm-svn: 117239
2010-10-24 17:26:50 +00:00
Argyrios Kyrtzidis
3ba70b89cf
Introduce a DeclsToRewrite field in ASTWrite, used for collecting the decls that will be replaced in the chained PCH.
...
llvm-svn: 117238
2010-10-24 17:26:46 +00:00
Argyrios Kyrtzidis
97bfda9b9b
Some method renaming, no functionality change.
...
llvm-svn: 117237
2010-10-24 17:26:43 +00:00
Argyrios Kyrtzidis
eb39d9a9ec
Refactoring.
...
- Pass around RecordDataImpl instead of the concrete RecordData so that any SmallVector can be used.
- Move ASTDeclWriter::WriteCXXDefinitionData to ASTWriter::AddCXXDefinitionData.
llvm-svn: 117236
2010-10-24 17:26:40 +00:00
Argyrios Kyrtzidis
65ad5691fd
Put the mechanism in place to track modifications in an AST entity that were committed after
...
its initial creation/deserialization and store the changes in a chained PCH.
The idea is that the AST entities call methods on the ASTMutationListener to give notifications
of changes; the PCHWriter implements the ASTMutationListener interface and stores the incremental changes
of the updated entity. WIP
llvm-svn: 117235
2010-10-24 17:26:36 +00:00
Argyrios Kyrtzidis
ad5f95cc4b
Simplify and "robust-ify" the way that CXXRecord references point to the definition data when loaded from PCH.
...
Temporary disable 'test/PCH/chain-cxx.cpp' until a better way to fix it is in place.
llvm-svn: 117234
2010-10-24 17:26:31 +00:00
Argyrios Kyrtzidis
8b200a5ef1
Minor refactoring; Pull reading/writing DefinitionData out into a function.
...
llvm-svn: 117233
2010-10-24 17:26:27 +00:00
Anders Carlsson
c532c8b106
Fix tyop.
...
llvm-svn: 117225
2010-10-24 12:51:00 +00:00
Marcin Swiderski
772324971d
- Fixed subexpressions evaluation order for binary operators to match order in code generated with the compiler,
...
- Fixed test cases for unreachable code warnings produced by Sema.
llvm-svn: 117220
2010-10-24 08:21:40 +00:00
Anders Carlsson
cdbd70ac69
Move the "used but marked unused" warning behind a special warning flag for now.
...
llvm-svn: 117219
2010-10-24 04:28:00 +00:00
Douglas Gregor
e63d087bcb
C++ [basic.scope.hiding] allows an ordinary name to hide a non-tag
...
name *in the same scope*, but not across scopes. Implement the
highlighted condition.
llvm-svn: 117212
2010-10-23 16:06:17 +00:00
Chandler Carruth
c3ce5840af
Update remaining attribute macros to new style.
...
llvm-svn: 117204
2010-10-23 08:44:57 +00:00
Chandler Carruth
b7967b91c9
Update to use 'LLVM_*' macro names for attributes.
...
llvm-svn: 117201
2010-10-23 08:21:37 +00:00
Anders Carlsson
73067a02db
Warn if a variable marked with the "unused" attribute is used. Patch by Darin Adler!
...
llvm-svn: 117184
2010-10-22 23:37:08 +00:00
John McCall
811a0f5578
Parse attributes on enumerators and instantiate attributes on enum decls.
...
llvm-svn: 117182
2010-10-22 23:36:17 +00:00
Anders Carlsson
21836f726b
Minor tweak so that fixit-errors.c is never compiled; it crashes and pops up a crash dialog on my system.
...
llvm-svn: 117181
2010-10-22 23:35:40 +00:00
Fariborz Jahanian
2b427c7fb0
Update compatibility page for objective-c.
...
llvm-svn: 117168
2010-10-22 22:35:51 +00:00
Douglas Gregor
263803a6cd
Teach clang_getCursorReferenced() and friends about BlockDeclRefExprs.
...
llvm-svn: 117167
2010-10-22 22:24:08 +00:00
Douglas Gregor
c0d2490ac4
In the presence of using declarations, we can find the same class
...
members in class subobjects of different types. So long as the
underlying declaration sets are the same, and the declaration sets
involve non-instance members, this is not an ambiguity.
llvm-svn: 117163
2010-10-22 22:08:47 +00:00
Ted Kremenek
5c97605c1d
Fix a horrible bug in all dataflow analyses that use CFGRecStmtVisitor (including live variables analysis).
...
We shouldn't recurse into CompoundStmts since they are already inlined in the CFG. This could result in
bogus dead stores warnings (among other things).
llvm-svn: 117162
2010-10-22 22:08:32 +00:00
Ted Kremenek
7043fba7fa
Fix '-analyzer-display-progress' for Objective-C methods. Also remove obsolete code.
...
llvm-svn: 117161
2010-10-22 22:08:29 +00:00
Fariborz Jahanian
059fe5ba09
Test emoved.
...
llvm-svn: 117160
2010-10-22 22:05:40 +00:00
Fariborz Jahanian
c123623d28
After discussion with Doug and John, I am reverting
...
the patch.
llvm-svn: 117159
2010-10-22 22:05:03 +00:00
Dale Johannesen
70f564e0e8
Change handling of inline asm 'p' constraint to match llvm-gcc.
...
llvm-svn: 117149
2010-10-22 21:07:10 +00:00
John McCall
457a04e3ce
Substantially revise how clang computes the visibility of a declaration to
...
more closely parallel the computation of linkage. This gets us to a state
much closer to what gcc emits, modulo bugs, which will undoubtedly arise in
abundance.
llvm-svn: 117147
2010-10-22 21:05:15 +00:00
Fariborz Jahanian
0196aa28ec
Patch fixes miscompile with non-trivial copy constructors and
...
statement expressions, //rdar: //8540501
llvm-svn: 117146
2010-10-22 21:01:02 +00:00
Devang Patel
401c916c8a
Delay record type's debug info emission, in -flimit-debug-info mode, if member expression's base is call expr.
...
llvm-svn: 117127
2010-10-22 18:56:27 +00:00
Devang Patel
db3910000a
Revert unintentional check-in.
...
llvm-svn: 117120
2010-10-22 18:31:12 +00:00
Douglas Gregor
bde20c0342
When we perform name lookup for a template, we may end up finding an
...
ambiguous name where none of the declarations found are actually
templates. In this case, make sure we clear out the ambiguous-path
data when recomputing the lookup result kind. Fixes PR8439.
llvm-svn: 117112
2010-10-22 17:36:51 +00:00
Oscar Fuentes
ac1a614079
Don't try to guess svn version when current path is a symlink.
...
See PR 8473.
llvm-svn: 117110
2010-10-22 17:16:39 +00:00
Devang Patel
f79199d140
Tidy up MIPS_linkage name. Provide it only if it does not match regular name, otherwise it confuses debugger.
...
This is tested by local.C in llvmgcc testsuite.
llvm-svn: 117107
2010-10-22 17:11:50 +00:00
Benjamin Kramer
fb5e584151
More class anonymization.
...
llvm-svn: 117106
2010-10-22 16:48:22 +00:00
Benjamin Kramer
2fc373e155
Move classes into anonymous namespaces.
...
llvm-svn: 117104
2010-10-22 16:33:16 +00:00
Douglas Gregor
412c362d9e
When performing name lookup for a namespace definition, only look into
...
the current context's redeclaration context, ignoring using
directives. Fixes PR8430.
llvm-svn: 117097
2010-10-22 15:24:46 +00:00
Douglas Gregor
06e41ae5c7
Teach the C++ simple-type-specifier parser and tentative parses about
...
protocol-qualified types such as id<Protocol>.
llvm-svn: 117081
2010-10-21 23:17:00 +00:00
Douglas Gregor
12a6c9e441
Update clang_getCursor() test to check searches on include directives
...
llvm-svn: 117063
2010-10-21 20:55:34 +00:00
Dan Gohman
2bb62c3d2b
Rename clang's TBAA tree root from "experimental" to "simple".
...
llvm-svn: 117046
2010-10-21 18:50:04 +00:00
Ted Kremenek
5ef9ad9907
Tweak diagnostics for redeclaration of a @property in a class extension where the redelcaration and original
...
declaration have the 'readwrite' attribute. This is a common case, and we can issue a more lucid diagnostic.
Fixes <rdar://problem/7629420>.
llvm-svn: 117045
2010-10-21 18:49:42 +00:00
Ted Kremenek
22813f4077
Tidy up comment (remove extraneous text).
...
llvm-svn: 117044
2010-10-21 18:49:36 +00:00
Dan Gohman
5419ce6827
Add some more comments.
...
llvm-svn: 117043
2010-10-21 18:49:12 +00:00
Douglas Gregor
cd1d0b4f98
Implement the integral promotion rules for the C++0x char16_t and
...
char32_t character types and enable built-in overloaded operator
candidates for these types. Fixes PR8432.
llvm-svn: 117038
2010-10-21 18:04:08 +00:00
Douglas Gregor
a02bb37a8c
Diagnose the declaration of template template parameters that
...
themselves have no template parameters. This is actually a restriction
due to the grammar of template template parameters, but we choose to
diagnose it in Sema to provide better recovery.
llvm-svn: 117032
2010-10-21 17:26:49 +00:00
Douglas Gregor
bff6203152
Always treat 'main' as an extern "C" function, so that we detect
...
redeclarations of main appropriately rather than allowing it to be
overloaded. Also, disallowing declaring main as a template.
Fixes GCC DejaGNU g++.old-deja/g++.other/main1.C.
llvm-svn: 117029
2010-10-21 16:57:46 +00:00
Douglas Gregor
270b2ef0e7
When checking whether a return statement returns a stack-local
...
variable, handle conditional operators involving a
throw-expression. Fixes GCC DejaGNU's g++.dg/template/cond4.C.
llvm-svn: 117027
2010-10-21 16:21:08 +00:00
Francois Pichet
ebdb43d54d
Revert r117005, WIN32 is not predefined after all.
...
llvm-svn: 117026
2010-10-21 16:14:56 +00:00
Ted Kremenek
c5644e1b97
Tweak the ObjCAtSyncChecker to assume that a mutex is non-nil after checking that it is
...
nil. Otherwise we can get false paths where a second @synchronized using the mutex
can have a bogus warning. Fixes <rdar://problem/8578650>.
llvm-svn: 117016
2010-10-21 15:38:55 +00:00
Francois Pichet
1ef4eb196d
MSVC defines WIN32 as a predefined macro.
...
llvm-svn: 117005
2010-10-21 09:39:28 +00:00
Michael J. Spencer
54bf3c3cfb
Targets: Fix MinGW and VisualStudio predefined macros.
...
llvm-svn: 117003
2010-10-21 08:22:51 +00:00
Douglas Gregor
adfdccf1f3
Improve the implementation of libclang's token-annotation logic for
...
entities in the preprocessing record. Previously, we would only end up
getting the first token of a preprocessing record annotated
correctly. For example, given
#include "foo.h"
we would only get the '#' annotated as an inclusion directive; the
'include' and '"foo.h"' tokens would be given the general 'processing
directive' annotation.
Now, we get proper annotations for entities in the preprocessing
record.
llvm-svn: 117001
2010-10-21 06:10:04 +00:00
Michael J. Spencer
cac9df3bf6
Add test for Windows predefined macros.
...
llvm-svn: 117000
2010-10-21 05:23:48 +00:00
Michael J. Spencer
4992ca4b17
Reorganize predefined macros for all Windows targets.
...
This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.
-fmsc-version=<version> (defaults to VS2003 (1300))
llvm-svn: 116999
2010-10-21 05:21:48 +00:00
Ted Kremenek
12a37de003
Previously, the printf warnings would say your arguments type was 'int' when it was really a 'char'
...
or a 'short'. This fixes that and allows the hints to suggest 'h' modifiers for small ints.
Patch by Justin Bogner!
llvm-svn: 116996
2010-10-21 04:00:58 +00:00
Ted Kremenek
6377965efb
Remove unused variable.
...
llvm-svn: 116995
2010-10-21 04:00:51 +00:00
Andrew Trick
9642cc6a9d
putback r116782, it's a safe fix and should not break windows
...
llvm-svn: 116994
2010-10-21 03:59:06 +00:00
Michael J. Spencer
4c0ffa823f
Fix Whitespace.
...
llvm-svn: 116990
2010-10-21 03:16:25 +00:00
Michael J. Spencer
7b726c3fc8
Revert "Cleanup and fix predefined macros for windows."
...
Didn't realize this was on my branch ;/.
llvm-svn: 116989
2010-10-21 03:14:35 +00:00
Michael J. Spencer
2fb548cc05
Cleanup and fix predefined macros for windows.
...
llvm-svn: 116988
2010-10-21 03:13:04 +00:00
Craig Silverstein
af8808dd28
Pass TInfo to CXXDestructorDecl::Create(), just like we do for other
...
function decls.
Reviewed by rjmccall and nlewycky.
llvm-svn: 116979
2010-10-21 00:44:50 +00:00
Andrew Trick
8cdb3f7d13
revert r116782 & r116793 to fix msvc9 buildbots
...
llvm-svn: 116976
2010-10-20 23:52:37 +00:00
Argyrios Kyrtzidis
00f5266dbf
When implicit members are added to a C++ record, notify the serializer so that a chained PCH writes the definition again.
...
Thanks to Doug for the hint!
llvm-svn: 116975
2010-10-20 23:48:42 +00:00
Argyrios Kyrtzidis
54b88e72d0
Modify the assumptions of an assert; the updated latest redeclaration can have the same location
...
if it's a template specialization pointing at the template.
llvm-svn: 116974
2010-10-20 23:48:40 +00:00
Ted Kremenek
982b32b1b6
Remove obsolete GRAuditor and GRSimpleAPICheck, which have been completely subsumed by the Checker interface.
...
llvm-svn: 116973
2010-10-20 23:48:34 +00:00
Ted Kremenek
bd2c800882
Convert GRSimpleAPIChecks in BasicObjCFoundationChecks to be Checkers.
...
llvm-svn: 116971
2010-10-20 23:38:56 +00:00
Douglas Gregor
796d76a663
Extend the preprocessing record and libclang with support for
...
inclusion directives, keeping track of every #include, #import,
etc. in the translation unit. We keep track of the source location and
kind of the inclusion, how the file name was spelled, and the
underlying file to which the inclusion resolved.
llvm-svn: 116952
2010-10-20 22:00:55 +00:00
Ted Kremenek
983fb5de5f
Call clang_disposeTokens() when we are done with the set of tokens.
...
llvm-svn: 116946
2010-10-20 21:22:15 +00:00
Craig Silverstein
7d8fdef78d
Get FunctionDecl to recurse on FunctionTypeLoc rather than
...
FunctionType! I didn't realize it was available, until rjmccall
pointed out that DeclaratorDecl made the typeloc available. This
makes FunctionDecl recursion *much* easier, because the typeloc can
take care of default parameters, so we no longer have to do that
separately, which means we can just do a normal type traversal instead
of this special-case WalkUp stuff we did before.
The only downside -- and it's minor -- is that because the TypeLoc
handles both the return type and the argument types, we can't recurse
on the explicit template args in the right place (which would be
between them). I do it beforehand instead. So for
int MyFunc<float>(char x);
we get callbacks in the order: float, int, char.
Reviewed by chandlerc
llvm-svn: 116945
2010-10-20 21:13:35 +00:00
Argyrios Kyrtzidis
3317d985fe
Fix chained PCH issue; make sure all visible decls that will be put into a UPDATE_VISIBLE block were recorded beforehand.
...
llvm-svn: 116931
2010-10-20 16:22:56 +00:00
Argyrios Kyrtzidis
afd639501d
Minor optimization; Try to iterator over redeclarations only when necessary.
...
llvm-svn: 116930
2010-10-20 16:22:49 +00:00
Fariborz Jahanian
bb40ea42e3
Fixes a potential crash in rewriter when sending message
...
to 'super'.
llvm-svn: 116928
2010-10-20 16:07:20 +00:00
Chandler Carruth
c7b34694ff
Try again to pacify the build bots. =/ I'm getting a Darwin machine to test on.
...
llvm-svn: 116918
2010-10-20 08:24:03 +00:00
Duncan Sands
3a02f3eeff
GCC 4.4 warns that Receiver may be used uninitialized in this function.
...
As far as I can see, gcc is right to think this! The following change
will cause a nice segfault rather than undefined behaviour if this case
occurs. Someone who understands what this code is supposed to do should
probably take a proper look.
llvm-svn: 116917
2010-10-20 08:21:16 +00:00
John McCall
f551acaaf5
Access control polish: drop the note on the original declaration and
...
say 'implicitly' when it was implicit. Resolves PR 7930 and my peace of mind.
llvm-svn: 116916
2010-10-20 08:15:06 +00:00
Chandler Carruth
4baa6ef5ec
Remove a modern bash-ism and use simpler shell redirects. Hopefully will fix
...
build bots.
llvm-svn: 116914
2010-10-20 07:16:18 +00:00
Chandler Carruth
24e17e175d
Add support for the '--sysroot' flag, and an accompanying test of its
...
interactions with -isysroot and other driver commands.
llvm-svn: 116912
2010-10-20 07:00:47 +00:00
John McCall
a020a0159f
When matching template parameter lists to template-ids in a scope specifier
...
on a friend declaration, skip template-ids which do not depend on the
current parameter list.
llvm-svn: 116911
2010-10-20 05:44:58 +00:00
Douglas Gregor
d507d77432
Fix handling of property and ivar lookup in typo correction; the two
...
kinds of lookup into Objective-C classes were tangled together, a
situation that was compounded by automatically synthesized ivars.
llvm-svn: 116907
2010-10-20 03:06:34 +00:00
Anders Carlsson
274a70ed7f
Add a __has_attribute macro that works much like __has_feature and __has_builtin.
...
llvm-svn: 116906
2010-10-20 02:31:43 +00:00
Douglas Gregor
9b2f537f69
Disable this test while I track down the platform-specific issue
...
llvm-svn: 116904
2010-10-20 01:46:04 +00:00
Douglas Gregor
87074f19e8
Introduce a simple cache for unqualified typo corrections, so that we
...
don't repeatedly loop through identifiers, correcting the same typo'd
identifier over and over again.
We still bail out after 20 typo corrections, but this should help
improve performance in the common case where we're typo-correcting
because the user forgot to include a header.
llvm-svn: 116901
2010-10-20 01:32:02 +00:00
Douglas Gregor
30bb275b6b
Bah, incompetence
...
llvm-svn: 116898
2010-10-20 01:16:12 +00:00
Douglas Gregor
1f32ebe892
Eliminate another ordering dependency in typo correction. Re-enable typo.m, which seems to be working properly.
...
llvm-svn: 116894
2010-10-20 01:01:57 +00:00
Craig Silverstein
3b9936f0b7
Had the wrong type for ArgType. :-( Fixed.
...
llvm-svn: 116893
2010-10-20 00:56:01 +00:00
Craig Silverstein
20f7ab72b1
The type-to-delete may not be a pointer if it's a dependent type.
...
Here's example code:
---
template<class T> class MyClass {
struct S { };
S* NewS() { return new S; }
void DeleteS() { delete NewS(); }
};
---
CXXDeleteExpr::getDestroyedType() on the 'delete NewS()' expression
would crash before this change. Now it returns a dependent type
object. Solution suggested by dgregor.
llvm-svn: 116891
2010-10-20 00:38:15 +00:00
Bill Wendling
67c5621742
Linux still needs these hacks.
...
llvm-svn: 116888
2010-10-20 00:12:59 +00:00
Argyrios Kyrtzidis
a41f66064f
Fix issue with chained PCH where forward references did not pick up later definition in the chained PCH.
...
llvm-svn: 116887
2010-10-20 00:11:15 +00:00
Fariborz Jahanian
7c299bc6fa
Do not rewrite new accessor if user has defined accessors.
...
Fixes //rdar: // 8570020.
llvm-svn: 116882
2010-10-19 23:47:54 +00:00
Ted Kremenek
c81155eef7
Silence uninitialized value warning.
...
llvm-svn: 116877
2010-10-19 23:10:22 +00:00
Ted Kremenek
c8456f8c59
Really^2 fix <rdar://problem/8361834>, this time without crashing.
...
Now MICache is a linked list (per the FIXME), where we tradeoff between MacroInfo objects being in MICache
and MIChainHead. MacroInfo objects in the MICache chain are already "Destroy()'ed", so they can be reused. When
inserting into MICache, we need to remove them from the regular linked list so that they aren't destroyed more than
once.
llvm-svn: 116869
2010-10-19 22:15:20 +00:00
Douglas Gregor
c1fb15ea8f
Provide an upper bound to the edit-distance algorithm when performing
...
typo correction, to allow early exits.
llvm-svn: 116868
2010-10-19 22:14:33 +00:00
Andrew Trick
ba266eec79
Putting back safe fixes 116836,116837,116838
...
llvm-svn: 116866
2010-10-19 21:54:32 +00:00
Ted Kremenek
60ba93cd62
Revert most of r116862. It isn't quite the right fix for a memory leak in Preprocessor.
...
llvm-svn: 116864
2010-10-19 21:40:34 +00:00
Ted Kremenek
e75b876fb9
Really fix: <rdar://problem/8361834> MacroInfo::AddTokenToBody() leaks memory
...
The problem was not the management of MacroInfo objects, but that when we recycle them
via the MICache the memory of the underlying SmallVector (within MacroInfo) was not getting
released. This is because objects stashed into MICache simply are reused with a placement
new, and never have their destructor called.
llvm-svn: 116862
2010-10-19 21:30:15 +00:00
Ted Kremenek
b865f7e025
Simplify loop. No functionality change.
...
llvm-svn: 116861
2010-10-19 21:30:11 +00:00
Andrew Trick
b20ed574ab
Reverting 116836,116837,116838 until we resolve the getLangStandardForKind failures.
...
llvm-svn: 116859
2010-10-19 21:14:46 +00:00
Bill Wendling
2bb7c59356
Now that mm_malloc.h was rewritten to *not* include errno.h (see
...
http://llvm.org/viewvc/llvm-project?rev=116771&view=rev ) we can get rid of these
hacks.
llvm-svn: 116853
2010-10-19 20:08:12 +00:00
Douglas Gregor
93910a5a59
Improve the performance of typo correction, by using a simple
...
computation to compute the lower bound of the edit distance, so that
we can avoid computing the edit distance for names that will clearly
be rejected later. Since edit distance is such an expensive algorithm
(M x N), this leads to a 7.5x speedup when correcting NSstring ->
NSString in the presence of a Cocoa PCH.
llvm-svn: 116849
2010-10-19 19:39:10 +00:00
Fariborz Jahanian
bfcbc85fea
Fixes a bug in ivar lookup in the new objc's default
...
property synthesis mode, when dealing with legacy code.
Fixes //rdar: //8565343.
llvm-svn: 116846
2010-10-19 19:08:23 +00:00
John McCall
32723e9198
Tag references shouldn't ever get template parameter lists.
...
Fixes rdar://problem/8568507
llvm-svn: 116843
2010-10-19 18:40:57 +00:00
Ted Kremenek
1f1e4bdbf7
Simplify lifetime management of MacroInfo objects in Preprocessor by having the Preprocessor maintain them in a linked
...
list of allocated MacroInfos. This requires only 1 extra pointer per MacroInfo object, and allows us to blow them
away in one place. This fixes an elusive memory leak with MacroInfos (whose exact location I couldn't still figure
out despite substantial digging).
Fixes <rdar://problem/8361834>.
llvm-svn: 116842
2010-10-19 18:16:54 +00:00
Argyrios Kyrtzidis
48ffd760a7
Fix up the comments for creating ParmVarDeclAbbrev to reflect reality.
...
llvm-svn: 116838
2010-10-19 18:06:49 +00:00
Argyrios Kyrtzidis
54e6197d5a
Minor optimization; if we have a CXXRecordDecl we can get the definition decl directly without iterating over the redeclarations.
...
llvm-svn: 116837
2010-10-19 18:06:47 +00:00
Argyrios Kyrtzidis
40338af47d
Merge headers into test/PCH/chain-cxx.cpp for convenience.
...
llvm-svn: 116836
2010-10-19 18:06:43 +00:00
Douglas Gregor
c4a821860c
Fix CMake installation of arm_neon.h
...
llvm-svn: 116835
2010-10-19 18:06:10 +00:00
Ted Kremenek
2c8028bcf4
In ~Preprocessor(), also cleanup the MacroInfo objects left-over from stray "#pragma push_macro" uses. This
...
fixes a potential memory leak.
llvm-svn: 116826
2010-10-19 17:40:53 +00:00
Ted Kremenek
6339f1ce2f
Fix typo in comment.
...
llvm-svn: 116825
2010-10-19 17:40:50 +00:00
Fariborz Jahanian
50c925fe96
This patch implements Next's IRGen for -fconstant-string-class=class-name.
...
PR6056, //rdar: //8564463
llvm-svn: 116819
2010-10-19 17:19:29 +00:00
Douglas Gregor
f0873f4c85
When marking declarations referenced within an expression (e.g.,
...
within a default argument), recurse into default arguments. Fixes
PR8401, a regression I introduced in r113700 while refactoring our
handling of "used" declarations in default arguments.
llvm-svn: 116817
2010-10-19 17:17:35 +00:00
Chandler Carruth
06067c556a
Use CLANG_RESOURCE_DIR define if one is provided, otherwise use the default of
...
'../lib/clang/<version>'. Actually use '..' rather than removing the trailing
component to correctly handle paths containing '.' or symlinks in the presence
of -no-canonical-prefixes, etc. This shouldn't change any existing behavior.
llvm-svn: 116803
2010-10-19 08:47:51 +00:00
Michael J. Spencer
8d3f5db7e5
test: FileCheck'ize and document test.
...
llvm-svn: 116799
2010-10-19 06:39:49 +00:00
Michael J. Spencer
f5a1fbcdf3
Fix Whitespace.
...
llvm-svn: 116798
2010-10-19 06:39:39 +00:00
John McCall
46a04f86df
MSVC space optimization.
...
llvm-svn: 116797
2010-10-19 05:43:52 +00:00
John McCall
be19d72e6d
Petty space optimizations in ElaboratedType and DependentNameType.
...
Petty time optimization in TemplateTypeParmType.
llvm-svn: 116796
2010-10-19 05:23:37 +00:00
John McCall
1a1b53e9ad
When instantiating a dependently-scoped friend function declaration,
...
we may need to complete the type before looking into it.
llvm-svn: 116795
2010-10-19 05:01:53 +00:00
NAKAMURA Takumi
a8792e514a
lib/Headers/stddef.h: wint_t should be defined whenever <stddef.h> is included with __need_wint_t.
...
llvm-svn: 116794
2010-10-19 03:42:41 +00:00
NAKAMURA Takumi
1984479896
test/Coverage/html-diagnostics.c: Use find(1) to glob wildcards.
...
MSYS cat(1) does not expand wildcards.
llvm-svn: 116793
2010-10-19 03:38:22 +00:00
John McCall
d0e23ecdc2
Instantiate enclosing template parameter lists when instantiating friends.
...
llvm-svn: 116789
2010-10-19 02:26:41 +00:00
John McCall
e3df2638ce
Uncomputable contexts are always records but can exist.
...
llvm-svn: 116787
2010-10-19 01:54:45 +00:00
John McCall
ace48cd872
Redirect templated friend class decls to a new Sema callback and
...
construct an unsupported friend when there's a friend with a templated
scope specifier. Fixes a consistency crash, rdar://problem/8540527
llvm-svn: 116786
2010-10-19 01:40:49 +00:00
NAKAMURA Takumi
5a391c97b5
test/Sema/return.c: Cygwin does not have _longjmp().
...
Although Cygwin-1.7 has _longjmp(), it would not be essential for this
to distinguish Cygwin's version with <cygwin/version.h>.
llvm-svn: 116783
2010-10-19 01:17:08 +00:00
NAKAMURA Takumi
3ad833be0e
test/Coverage/html-diagnostics.c: Do not make hit "CHECK: Dereference of null pointer" to the output itself!
...
llvm-svn: 116782
2010-10-19 01:11:16 +00:00
Douglas Gregor
0787b3224d
Tweak code-completion result priorities, so that exact and similar
...
type matches have a bigger impact. The impetus for this change was
that, when initializing an enumeration value, we want enumerators of
that enumeration type to have a higher priority than, e.g., unrelated
local variables.
llvm-svn: 116774
2010-10-19 00:03:23 +00:00
Bill Wendling
9987c0ea42
We shouldn't keep track of MMX registers "needed" separately from the SSE
...
registers needed.
llvm-svn: 116772
2010-10-18 23:51:38 +00:00
Eric Christopher
8a8673ea39
From scratch rewrite of mm_malloc.h.
...
Patch by Matthew Beaumont-Gay!
llvm-svn: 116771
2010-10-18 23:38:51 +00:00
Daniel Dunbar
cb79c22678
tests: Force triple to avoid limited precision warning on win32.
...
llvm-svn: 116770
2010-10-18 23:37:08 +00:00
Ted Kremenek
da8a79ac8d
"Fix" bogus idempotent operations warning due to loop unrolling not unrolling enough loops to show that an invariant
...
doesn't hold. This fix is to increase the loop unrolling count to 4, which experiments show doesn't typically impact
analysis time. The real fix is to modify the IdempotentOperationsChecker to suppress warnings where an analysis point
could be preceded by a point where we gave up due to loop unrolling.
llvm-svn: 116769
2010-10-18 23:36:05 +00:00
Daniel Dunbar
473f8a6f88
Driver: Reject -fasm-blocks except on X86 (where we just ignore it, since
...
passing it is very prevalent in some circles).
llvm-svn: 116761
2010-10-18 22:49:46 +00:00
Daniel Dunbar
2b4de14b1d
Driver/IA: Accept and ignore -force_cpusubtype_ALL, as in 'clang -c
...
-Wa,-force_cpusubtype_ALL t.c'.
- Tweaks -Wa, and -Xassembler handling to only accept an explicit short list of
arguments and give an obvious unsupported error on others.
llvm-svn: 116759
2010-10-18 22:36:15 +00:00
Daniel Dunbar
767bbabb24
Driver/Darwin: Forward -ObjC when linking, which may be needed when using static
...
libraries with Objective-C code.
llvm-svn: 116758
2010-10-18 22:08:36 +00:00
Douglas Gregor
c769d6e007
Fix the translation of the PCC_ForInit code-completion context for
...
C++/C99/Objective-C, so that we properly include types. This fix
affects global caching of code-completion results; without caching,
the behavior was already correct.
llvm-svn: 116757
2010-10-18 22:01:46 +00:00
Douglas Gregor
643c330b91
Provide code completion for types after the '^' that starts a block
...
literal.
llvm-svn: 116754
2010-10-18 21:34:55 +00:00
John McCall
18e4edae82
Fix some bugs in local class mangling brought up in PR8355.
...
Patch by Richard Smith!
llvm-svn: 116752
2010-10-18 21:28:44 +00:00
Douglas Gregor
8e3e8743fb
Introduce code completion results for Objective-C methods, both when
...
declaring methods and when sending messages to them, by bringing all
of the selector into TypedCheck chunks in the completion result. This
way, we can improve the sorting of these results to account for the
full selector name rather than just the first chunk.
llvm-svn: 116746
2010-10-18 21:05:04 +00:00
Argyrios Kyrtzidis
9beef8e53d
Read/write declaration attributes from/to PCH properly. Embed them in the declaration block instead of trying to create another block.
...
The new block was messing with the assumption that after decls block comes the stmts block.
Fixes http://llvm.org/PR8406
llvm-svn: 116737
2010-10-18 19:20:11 +00:00
Argyrios Kyrtzidis
754fb5ffb3
Merge header & cpp for test/PCH/attrs.c - more convenient to keep the tests in one source file.
...
llvm-svn: 116736
2010-10-18 19:20:05 +00:00
Douglas Gregor
1b035bbe3a
When providing code completions of Objective-C method declarations
...
(after - or +), always traverse superclasses and all categories. The
programmer may want to complete a method from *anywhere*.
llvm-svn: 116723
2010-10-18 18:21:28 +00:00
Fariborz Jahanian
f34011e4ca
patch fixes class names missing from method names in debug information for
...
synthesized property. // rdar: //8498026
llvm-svn: 116717
2010-10-18 17:51:06 +00:00
Anders Carlsson
778ca32c88
Implement the first half of [dcl.attr.override]p6.
...
llvm-svn: 116709
2010-10-18 16:24:27 +00:00
Francois Pichet
a310806ae5
Microsoft enum extensions. 2 things will change on -fms-extensions:
...
1. enum underlying type is int by default.
2. Error "enumerator value is not representable in the underlying type"is a ExtWarning
llvm-svn: 116704
2010-10-18 15:01:13 +00:00
Douglas Gregor
6769922d8c
Add iteration over the preprocessor conditional stack to PreprocessorLexer
...
llvm-svn: 116703
2010-10-18 14:43:21 +00:00
Douglas Gregor
70d80598c5
Add declarations nested in a linkage specification to the output of
...
-ast-print-xml, from Martin Vejnar!
llvm-svn: 116702
2010-10-18 14:35:28 +00:00
Michael J. Spencer
a9e009e5bd
CodeGen: Fix long double on Windows using MSVC runtime.
...
llvm-svn: 116700
2010-10-18 07:11:10 +00:00
Michael J. Spencer
feb799c14b
Fix Whitespace.
...
llvm-svn: 116699
2010-10-18 07:10:59 +00:00
Bill Wendling
5cd41c4b13
Reapply r116684 with fixes. The test cases needed to be updated.
...
llvm-svn: 116696
2010-10-18 03:41:31 +00:00
Oscar Fuentes
16d73f9216
Do not use absolute path on the clang++ symlink.
...
Based on a patch by Ryuta Suzuki!
llvm-svn: 116695
2010-10-18 02:25:54 +00:00
Anders Carlsson
0ea1047d51
Implement [dcl.attr.override]p2 and add tests for p1 and p2.
...
llvm-svn: 116692
2010-10-17 23:36:12 +00:00
Anders Carlsson
fa9de26518
Add test for [dcl.attr.final]p4.
...
llvm-svn: 116691
2010-10-17 22:47:44 +00:00
Oscar Fuentes
95b6f045f1
Use a script for creating the clang++ executable.
...
The previous method used the DESTDIR environment variable at configure
time, but sometimes it is only available at install time. See PR8397.
llvm-svn: 116689
2010-10-17 16:10:32 +00:00
Bill Wendling
c7c9be661f
Temporarily revert r116684. It was causing failures with
...
Clang :: CodeGen/x86_32-arguments-darwin.c
Clang :: CodeGen/x86_32-arguments-linux.c
llvm-svn: 116687
2010-10-17 07:58:46 +00:00
Bill Wendling
812f4b123e
The "gcc.dg/compat/vector-1 -m32" test was broken after the MMX rewrite. The
...
function parameters weren't converted to use the correct type (x86_mmx). Add a
check, similar to the one in llvm-gcc, to see if we need the x86_mmx type for
that function parameter. If so, it coerces the type to be that.
llvm-svn: 116684
2010-10-17 07:38:01 +00:00
Argyrios Kyrtzidis
cd86570b93
Xcode keeps modifying the project file and I don't know how to ignore the change; just commit it.
...
llvm-svn: 116673
2010-10-16 17:18:07 +00:00
John McCall
d509182336
Coding by inspection has its problems.
...
llvm-svn: 116672
2010-10-16 16:34:08 +00:00
Gabor Greif
6a46da277f
validator
...
llvm-svn: 116668
2010-10-16 09:40:21 +00:00
Gabor Greif
4b50bd8a2e
these items are done, afaik
...
llvm-svn: 116667
2010-10-16 09:29:38 +00:00
John McCall
17afe45a87
objc_exception_rethrow does not take an exception argument.
...
rdar://problem/8535238
llvm-svn: 116663
2010-10-16 08:21:07 +00:00
John McCall
c9739e30c6
Reformatting.
...
llvm-svn: 116662
2010-10-16 07:23:36 +00:00
John McCall
2c2eb12d9c
White-listing templated-scope friend decls is a good idea, but doing it
...
by marking the decl invalid isn't. Make some steps towards supporting these
and then hastily shut them down at the last second by marking them as
unsupported.
llvm-svn: 116661
2010-10-16 06:59:13 +00:00
Daniel Dunbar
622581b73b
Revert r116656, "IRgen/Obj-C/NeXT: Fix the IR signature for
...
objc_exception_rethrow, so we don't...", since something is actually trying to
call this with the wrong signature (!). Unfortunately I don't understand the new
EH infrastructure well enough to fix it immediately.
llvm-svn: 116660
2010-10-16 05:04:10 +00:00
Daniel Dunbar
b4ece9cf2f
Add an empty robots.txt, mostly just to reduce errors in HTTP log.
...
llvm-svn: 116658
2010-10-16 04:10:37 +00:00
Daniel Dunbar
cc5b831149
Add a favicon.ico, mostly just to reduce errors in HTTP log.
...
llvm-svn: 116657
2010-10-16 04:08:19 +00:00
Daniel Dunbar
90bb5c2315
IRgen/Obj-C/NeXT: Fix the IR signature for objc_exception_rethrow, so we don't
...
generate unnecessary %al clear on x86_64.
llvm-svn: 116656
2010-10-16 04:08:16 +00:00
Fariborz Jahanian
1cee0adea3
Fix a rewriting bug of rewriting properties declared in
...
protocols. // rdar: //8558702
llvm-svn: 116652
2010-10-16 00:29:27 +00:00
Ted Kremenek
51651089ab
Tweak scan-build to work with naked clang commands.
...
llvm-svn: 116651
2010-10-16 00:29:16 +00:00
Chandler Carruth
dc689c4156
Not really sure how this worked, but it seems like a clear typo. =]
...
llvm-svn: 116650
2010-10-16 00:24:52 +00:00
Douglas Gregor
1f81ced14c
Allow list-initialization of a local variable of class type with a
...
flexible array member, so long as the flexibility array member is
either not initialized or is initialized with an empty initializer
list. Fixes <rdar://problem/8540437>.
llvm-svn: 116647
2010-10-15 23:53:28 +00:00
Douglas Gregor
bafff22b91
Disable this test again, which naturally fails on every platform except the one I'm building with
...
llvm-svn: 116642
2010-10-15 23:23:05 +00:00
Ted Kremenek
4f63ac7057
Tweak retain/release checker diagnostics to specify a leak occurs because an object is not referenced later in the path,
...
not that it isn't referenced later in the code. Fixes <rdar://problem/8527839>.
llvm-svn: 116636
2010-10-15 22:50:23 +00:00
Fariborz Jahanian
dddf158c19
Check for ivar being a C++ object before attempting to
...
find a copy constructor/assignment operator used
in getter/setter synthesis. This removes an unintended
diagnostics and makes objc++ consistant with objective-c.
// rdar: //8550657.
llvm-svn: 116631
2010-10-15 22:42:59 +00:00
Daniel Dunbar
6358d6866d
Driver: Error on -fno-for-scope, which we have no intention of supporting.
...
llvm-svn: 116627
2010-10-15 22:30:42 +00:00
Nick Lewycky
c60d6e7af0
Report the location of the syntax error inside a macro. Fixes PR7944.
...
llvm-svn: 116624
2010-10-15 21:43:24 +00:00
Francois Pichet
8c2f519b8b
bool bit fields are causing problems with MSVC. Replace them with unsigned bit fields.
...
llvm-svn: 116623
2010-10-15 21:34:50 +00:00
Dan Gohman
f47df3e02a
Mention the paragraphs in the standards which sanction TBAA.
...
llvm-svn: 116617
2010-10-15 20:54:41 +00:00
Dan Gohman
c44fd6486e
Use a different name for pointer types in tbaa, to be a little
...
more consistent with other names, and to look less like a magic name.
llvm-svn: 116616
2010-10-15 20:26:20 +00:00
Dan Gohman
2d0a3c7b8c
Add a comment.
...
llvm-svn: 116615
2010-10-15 20:24:53 +00:00
Dan Gohman
4a3b1b3ef4
Fix a typo in a comment Frits van Bommel spotted.
...
llvm-svn: 116614
2010-10-15 20:24:10 +00:00
Dan Gohman
2e29eb5a4b
Experimental TBAA support for enum types.
...
llvm-svn: 116613
2010-10-15 20:23:12 +00:00
Argyrios Kyrtzidis
59b34c2bb4
Again, add '-include-pch' option to the driver, so it can get passed to the cc1 driver.
...
llvm-svn: 116608
2010-10-15 18:52:45 +00:00
Argyrios Kyrtzidis
dfe47dba37
Revert r116605, a lot more were committed by mistake.
...
llvm-svn: 116606
2010-10-15 18:51:34 +00:00
Argyrios Kyrtzidis
ffbba26285
Add '-include-pch' option to the driver, so it can get passed to the cc1 driver.
...
llvm-svn: 116605
2010-10-15 18:49:01 +00:00
Fariborz Jahanian
4f99b59df6
Eradicate IsSuper field from ObjCImplicitSetterGetterRefExprClass
...
AST node. (finishing off radar 8525788).
llvm-svn: 116603
2010-10-15 18:40:05 +00:00
Devang Patel
f3ca447c26
TBAA = Type Based Alias Analysis
...
llvm-svn: 116599
2010-10-15 18:23:36 +00:00
Argyrios Kyrtzidis
434383d703
Read/write to/from PCH DeclarationNameLocs, DeclarationNameInfos and QualifierInfos (rdar://8513756).
...
llvm-svn: 116598
2010-10-15 18:21:24 +00:00
Dan Gohman
d19ee8a07f
Don't leak the TBAA object.
...
llvm-svn: 116595
2010-10-15 18:04:46 +00:00
Dan Gohman
f5c5e0773e
Add a comment about odd "signed char" incompatibility between C++ and C.
...
llvm-svn: 116593
2010-10-15 17:52:03 +00:00
David Chisnall
2e16ac52e1
Add clang_getLocationForOffset() to libclang, for gives a source location from a character index into a file.
...
llvm-svn: 116587
2010-10-15 17:07:39 +00:00
Douglas Gregor
26c5578d84
When performing typo correction, keep track of whether the last lookup
...
we did was an acceptable lookup. If it is, then we can re-use that
lookup result. If it isn't, we have to perform the lookup again. This
is almost surely the cause behind the mysterious typo.m failures on
some builders; we were getting the wrong lookup results returned.
llvm-svn: 116586
2010-10-15 16:49:56 +00:00
Daniel Dunbar
2a40abae4d
Disable type.m while failures are investigated.
...
llvm-svn: 116577
2010-10-15 15:28:09 +00:00
Daniel Dunbar
1837dbd4e3
Make test more consistent.
...
llvm-svn: 116576
2010-10-15 15:13:02 +00:00
Douglas Gregor
af9eb59274
When we're in the context of an Objective-C message send's receiver,
...
typo correction prefers "super" over other, equivalent completions. I
believe this will fix the regression on the buildbot.
llvm-svn: 116574
2010-10-15 13:35:25 +00:00
Douglas Gregor
36c22a2335
Diagnose C++ [class.mem]p13-14, where a class member has the same name
...
as the class itself. Fixes PR7082.
llvm-svn: 116573
2010-10-15 13:21:21 +00:00
Gabor Greif
de1f58919a
zap trailing whitespace
...
llvm-svn: 116572
2010-10-15 08:48:51 +00:00
Gabor Greif
7e1dd672fb
testcase for http://llvm.org/PR8371 of my last commit, r116570
...
llvm-svn: 116571
2010-10-15 08:44:44 +00:00
Gabor Greif
eef3197301
fix http://llvm.org/PR8371 in the straightforward way, also adding a comment
...
llvm-svn: 116570
2010-10-15 08:26:25 +00:00
Abramo Bagnara
932e393fda
Treat __extension__ like ParenExpr.
...
llvm-svn: 116569
2010-10-15 07:51:18 +00:00
Craig Silverstein
12a198e5b1
Recurse on a TypeLoc rather than a Type for TypedefDecl, now that the
...
typloc information is available (I don't think it was, originally).
Submitted as a 'trivial' change.
llvm-svn: 116568
2010-10-15 06:51:01 +00:00
John McCall
1c9c3fd50a
Death to blocks, or at least the word "block" in one particular obnoxiously
...
ambiguous context.
llvm-svn: 116567
2010-10-15 04:57:14 +00:00
Douglas Gregor
d4e1fb562e
Don't complain about a variable within a linkage-specification that is
...
initialized. Fixes PR7076.
llvm-svn: 116553
2010-10-15 01:21:46 +00:00
Douglas Gregor
b048402073
When we are missing the ',' or '>' to terminate a template parameter
...
list, complain about it! Fixes PR7053.
llvm-svn: 116551
2010-10-15 01:15:58 +00:00
Douglas Gregor
8a8e0313bf
Add builtin conditional operator candidates for scoped enumeration
...
types, from Alp Toker! Fixes PR8344.
llvm-svn: 116549
2010-10-15 00:50:56 +00:00
Daniel Dunbar
59ae137329
Update CMake.
...
llvm-svn: 116548
2010-10-15 00:39:31 +00:00
Oscar Fuentes
b3ce035c71
Copied some flags from the Makefile build to the list of GCC flags.
...
This removes a lot of warnings.
llvm-svn: 116545
2010-10-15 00:16:22 +00:00
Dan Gohman
d65c196439
Add a TBAA type for pointer types.
...
llvm-svn: 116544
2010-10-15 00:01:39 +00:00
Dan Gohman
3f1cf0f373
Unsigned types are TBAA-compatible with their signed counterparts.
...
Also, handle unknown types conservatively.
llvm-svn: 116541
2010-10-14 23:39:00 +00:00
Fariborz Jahanian
9c07e1767d
Rewrite bug fix rewriting a property assignment when
...
its RHS is an ivar. Fixes //rdar: //8541517.
llvm-svn: 116539
2010-10-14 23:31:39 +00:00
Dan Gohman
947c9af774
Experimental TBAA support.
...
This enables metadata generation by default, however the TBAA pass
in the optimizer is still disabled for now.
llvm-svn: 116536
2010-10-14 23:06:10 +00:00
Devang Patel
0f58561907
Use root non-virtual primary base class, not just immediate primary base class, for AT_containing_type.
...
This is tested by virtfunc.exp in gdb testsuite.
llvm-svn: 116535
2010-10-14 22:59:23 +00:00
Dan Gohman
10169b94cf
Wire up the -fstrict-aliasing and -fno-strict-aliasing options
...
to CodeGenOption flags.
llvm-svn: 116530
2010-10-14 22:36:56 +00:00
John McCall
f477659040
template-ids are looked up differently in friend declarations.
...
llvm-svn: 116529
2010-10-14 22:22:28 +00:00
Douglas Gregor
57756eabc9
When performing typo correction, look through the set of known
...
identifiers to determine good typo-correction candidates. Once we've
identified those candidates, we perform name lookup on each of them
and the consider the results.
This optimization makes typo correction > 2x faster on a benchmark
example using a single typo (NSstring) in a tiny file that includes
Cocoa.h from a precompiled header, since we are deserializing far less
information now during typo correction.
There is a semantic change here, which is interesting. The presence of
a similarly-named entity that is not visible can now affect typo
correction. This is both good (you won't get weird corrections if the
thing you wanted isn't in scope) and bad (you won't get good
corrections if there is a similarly-named-but-completely-unrelated
thing). Time will tell whether it was a good choice or not.
llvm-svn: 116528
2010-10-14 22:11:03 +00:00
Douglas Gregor
c3bbf48f47
Make sure that we diagnose invalid qualifiers on friend functions.
...
llvm-svn: 116527
2010-10-14 22:03:51 +00:00
John McCall
25c9d1170b
At Fariborz's request, a somewhat cleaner bit-combining hack.
...
llvm-svn: 116524
2010-10-14 21:48:26 +00:00
Andrew Trick
6c8ce5c8b5
Reverting r116493: removes a test that failed on clang selfhost and msvc
...
llvm-svn: 116522
2010-10-14 21:41:16 +00:00
Argyrios Kyrtzidis
a665dc0770
Fix compiler error that clang didn't report (probably same problem as rdar://8552377).
...
It's more stress-free without access checking though..
llvm-svn: 116521
2010-10-14 21:35:29 +00:00
Fariborz Jahanian
a895c38928
Put line number on the diagnostic. //rdar: //8550657.
...
llvm-svn: 116519
2010-10-14 21:30:10 +00:00
Francois Pichet
41232a9872
r116509 fixed the Win32 XFAIL.
...
The failing was due to this:
1. preamble.c contains CR+LF new lines
2. write() is called with a buffer containing the original (CR+LF) to output the result on the console.
3. In text mode(the default), write() convert LF to CR+LF even if LF is preceded by CR, hence we have CR+CR+LF which filecheck interprets as 2 lines.
llvm-svn: 116513
2010-10-14 20:49:46 +00:00
Douglas Gregor
0afa7f66cd
Tweak the typo-correction implementation to determine corrections
...
solely based on the names it sees, rather than actual declarations it
gets. In essence, we determine the set of names that are "close
enough" to the typo'd name. Then, we perform name lookup for each of
those names, filtering out those that aren't actually visible, and
typo-correct from the remaining results.
Overall, there isn't much of a change in the behavior of typo
correction here. The only test-suite change comes from the fact that
we make good on our promise to require that the user type 3 characters
for each 1 character corrected.
The real intent behind this change is to set the stage for an
optimization to typo correction (so that we don't need to deserialize
all declarations in a translation unit) and future work in finding
missing qualification ("'vector' isn't in scope; did you mean
'std::vector'?). Plus, the code is cleaner this way.
llvm-svn: 116511
2010-10-14 20:34:08 +00:00
Argyrios Kyrtzidis
6843141d39
Store in PCH the key function of C++ class to avoid deserializing the complete declaration context in order to compute it.
...
Progress for rdar://7260160.
llvm-svn: 116508
2010-10-14 20:14:38 +00:00
Argyrios Kyrtzidis
0e88a565c0
Allow deserialization of just the fields of a record, when we want to iterate over them,
...
instead of deserializing the complete declaration context of the record.
Iterating over the fields of a record is very common (e.g to determine the layout), unfortunately we needlessly deserialize every declaration
that the declaration context of the record contains; this can be bad for large C++ classes that contain a lot of methods.
Fix this by allow deserialization of just the fields when we want to iterate over them.
Progress for rdar://7260160.
llvm-svn: 116507
2010-10-14 20:14:34 +00:00
Argyrios Kyrtzidis
55d1fc2d3c
Give a default implementation for ASTDeserializationListener's methods, no functionality change.
...
llvm-svn: 116506
2010-10-14 20:14:28 +00:00
Argyrios Kyrtzidis
0427be938e
Introduce command line option -error-on-deserialized-decl that is accompanied by a name
...
and emits an error if a declaration with this name is deserialized from PCH.
This is for testing, to make sure that we don't deserialize stuff needlessly.
llvm-svn: 116505
2010-10-14 20:14:25 +00:00
Argyrios Kyrtzidis
470c454a61
Don't add the injected class name to the redeclarations chain; the chain should contain actual redeclarations, not implicits.
...
As a bonus, now we don't deserialize it unless we need it.
llvm-svn: 116504
2010-10-14 20:14:21 +00:00
Argyrios Kyrtzidis
a11aca4646
Introduce command line option -dump-deserialized-decls which is used to print the PCH decls that got deserialized, for testing purposes.
...
llvm-svn: 116503
2010-10-14 20:14:18 +00:00
David Chisnall
a9d40ee0ab
Test case for r116439
...
llvm-svn: 116493
2010-10-14 18:15:20 +00:00
Fariborz Jahanian
681c0754d9
Eliminate usage of ObjCSuperExpr used for
...
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
2010-10-14 16:04:05 +00:00
Anton Yartsev
73d4023114
support for AltiVec extensions from the Cell architecture
...
llvm-svn: 116478
2010-10-14 14:37:46 +00:00
Zhongxing Xu
23e082d32c
Call PreVisitDeclStmt for C++ aggregate initializers. Patch by Jim Goodnow II.
...
llvm-svn: 116473
2010-10-14 05:22:59 +00:00
John McCall
7f570718d3
Compress bit fields / enums from ReferenceType, BuiltinType, FunctionType, and
...
ObjCObjectType into Type.
llvm-svn: 116472
2010-10-14 03:00:17 +00:00
John McCall
e1139e4a88
Whoops. This really shouldn't compile in clang, either.
...
llvm-svn: 116470
2010-10-14 02:06:32 +00:00
John McCall
c153891662
Perform range restrictions on regparm when applied to a type and
...
not a decl.
llvm-svn: 116469
2010-10-14 01:57:10 +00:00
John McCall
43b6168b3b
Teach Diagnostic to recursively expand inside %plural formats.
...
llvm-svn: 116468
2010-10-14 01:55:31 +00:00
Chris Lattner
26f6c227dc
allow I128 suffixes in msextensions mode just like i128 suffixes, patch
...
by Martin Vejnar!
llvm-svn: 116460
2010-10-14 00:24:10 +00:00
Chris Lattner
2edb926880
move logic for computing signed integer overflow when constant folding
...
into APInt.
llvm-svn: 116453
2010-10-13 23:46:56 +00:00
Douglas Gregor
5a2bb5ba98
Diagnose when a 'static' member function overrides a virtual function
...
in a base class. Fixes PR8168.
llvm-svn: 116448
2010-10-13 22:55:32 +00:00
Douglas Gregor
a007d36c1b
Generalize the checking for qualification of (non-friend) class
...
members. Provide a hard error when the qualification doesn't match the
current class type, or a warning + Fix-it if it does match the current
class type. Fixes PR8159.
llvm-svn: 116445
2010-10-13 22:19:53 +00:00
David Chisnall
1822d1f0a8
Don't claim that things that are Objective-C keywords if preceded by an @ are keywords unless they are preceded by an @.
...
For example, don't claim that end is a keyword in:
unsigned end;
llvm-svn: 116439
2010-10-13 21:44:48 +00:00
Douglas Gregor
392a84bdf6
Eliminate the use of ObjCSuperExpr in code completion.
...
llvm-svn: 116436
2010-10-13 21:24:53 +00:00
Douglas Gregor
d07ba34a44
There is no reason for dereferencing a pointer-to-member to require
...
that the class type into which the pointer points be complete, even
though the standard requires it. GCC/EDG do not require a complete
type here, so we're calling this a problem with the standard. Fixes
PR8328.
llvm-svn: 116429
2010-10-13 20:41:14 +00:00
Douglas Gregor
e01d2243d3
Update Type::BitsRemainingInType
...
llvm-svn: 116423
2010-10-13 20:07:36 +00:00
Douglas Gregor
f10c97f36e
_Bool is not a keyword in C++. Fixes PR7388 and PR8349.
...
llvm-svn: 116422
2010-10-13 20:00:38 +00:00
Douglas Gregor
dc13b04a98
Place conversion warnings for non-type template arguments under the
...
control of -Wconversion, and ignore them by default.
llvm-svn: 116415
2010-10-13 18:27:55 +00:00
Douglas Gregor
52051cb173
Introduce a bit into Type that keeps track of whether there are any
...
unnamed or local types within that type. This bit is cached along with
the linkage of a type, so that it can be recomputed (e.g., when we see
that a typedef has given a name to an anonymous declaration).
Use this bit when checking C++03 [temp.arg.type]p2, so that we don't
walk template argument types repeatedly.
llvm-svn: 116413
2010-10-13 18:05:20 +00:00
Douglas Gregor
b39215942e
Fix a silly bug in the suppression of non-error diagnostics in a
...
SFINAE context, where we weren't getting the right diagnostic argument
count. I blame DiagnosticBuilder's weirdness. Fixes PR8372.
llvm-svn: 116411
2010-10-13 17:22:14 +00:00
Douglas Gregor
518da18d70
Compute whether a type is variably modified as we build the type,
...
rather than walking the type's structure every time we request this
information. Performance optimization; no functionality change.
llvm-svn: 116409
2010-10-13 16:58:14 +00:00
Fariborz Jahanian
26d1e2b370
Eliminates a clang warning.
...
llvm-svn: 116408
2010-10-13 16:19:16 +00:00
Rafael Espindola
85111907bb
Call InitSections when assembling. This makes clang's output match that of
...
llvm-mc.
llvm-svn: 116405
2010-10-13 14:53:57 +00:00
John McCall
ccbc032146
Preserve the original scope when picking the right scope for a friend
...
declaration, because we'll need it later. Hopefully fixed self-host.
llvm-svn: 116399
2010-10-13 06:22:15 +00:00
John McCall
f7cfb2212c
Support friend function declarations in local classes correctly.
...
Fixes a crash and diagnoses the error condition of an unqualified
friend which doesn't resolve to something. I'm still not certain how
this is useful.
llvm-svn: 116393
2010-10-13 05:45:15 +00:00
Argyrios Kyrtzidis
8c64bbe032
Embrace C++ ABI 5.2.6 and consider that template instantiations don't have key functions (same as GCC).
...
llvm-svn: 116391
2010-10-13 02:39:41 +00:00
Douglas Gregor
7731d3fafc
Teach the warning about unnamed/local types in template arguments to
...
actually walk the template argument type to find any unnamed/local
types within it. Fixes PR6784.
llvm-svn: 116382
2010-10-13 00:27:52 +00:00