summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* When we transform a C++ exception declaration (e.g., for templateDouglas Gregor2011-04-142-8/+5
| | | | | | | | instantiation), be sure to add the transformed declaration into the current DeclContext. Also, remove the -Wuninitialized hack that works around this bug. Fixes <rdar://problem/9200676>. llvm-svn: 129544
* Add support for C++0x's range-based for loops, as specified by the C++11 ↵Richard Smith2011-04-1424-37/+929
| | | | | | draft standard (N3291). llvm-svn: 129541
* Detect when the string "<::" is found in code after a cast or template name ↵Richard Smith2011-04-141-0/+79
| | | | | | | | and is interpreted as "[:" because of the digraph "<:". When found, give an error with a fix-it to add whitespace between the "<" and "::". Patch by Richard Trieu! Plus a small tweak from me to deal with one of the tokens coming from a macro. llvm-svn: 129540
* Match pointer of compatible vection types. Fariborz Jahanian2011-04-141-0/+8
| | | | | | // rdar://9208404 llvm-svn: 129536
* When determining the "usage" type of a declaration for the purposes of code Douglas Gregor2011-04-141-2/+33
| | | | | | | completion, look through block pointer and function pointer types to the result type of the block/function. Fixes <rdar://problem/9282583>. llvm-svn: 129535
* Implement ARM pcs attribute. Basically it's another way of calling ↵Anton Korobeynikov2011-04-149-9/+93
| | | | | | | | | | convention selection (AAPCS or AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86. In particular, all library functions should always be AAPCS regardless of floating point ABI used. llvm-svn: 129534
* Implement C++0x [lex.pptoken]p3's handling of <::.Richard Smith2011-04-141-0/+15
| | | | llvm-svn: 129525
* Parse an '@' in an Objective-C++ class member specification,Douglas Gregor2011-04-141-0/+11
| | | | | | | diagnosing it as an error rather than looping infinitely. Also, explicitly disallow @defs in Objective-C++. Fixes <rdar://problem/9260136>. llvm-svn: 129521
* Chained PCH: Remember when additional specializations are added to a ↵Sebastian Redl2011-04-144-1/+27
| | | | | | function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there. llvm-svn: 129516
* Fix -H. It was pretty broken.Sebastian Redl2011-04-141-5/+9
| | | | llvm-svn: 129514
* The ASTReader created by -chain-include used the generated PCH buffers in ↵Sebastian Redl2011-04-141-2/+2
| | | | | | the wrong order. The effect was that all but the first chain-include files was ignored for subsequent compilations. llvm-svn: 129513
* Return the correct lastly populated block from ↵Ted Kremenek2011-04-141-2/+4
| | | | | | CFGBuilder::VisitUnaryExprOrTypeTraitExpr(). llvm-svn: 129499
* Replace a couple of divide-by-8s with divide-by-charwidths. No change inKen Dyck2011-04-141-2/+4
| | | | | | functionality intended. llvm-svn: 129496
* Re-fix r129481 and r129465 properly. Nulls fixits shouldn't be dropped inEli Friedman2011-04-141-4/+2
| | | | | | | DiagnosticBuilder::AddFixItHint: they will be dropped along with any other (possibly valid) fixits later. llvm-svn: 129495
* When creating an implicit member expression through a qualified-id, check ↵Argyrios Kyrtzidis2011-04-141-3/+15
| | | | | | | | | | that the class named by the nested-name-specifier is same or base of the class in which the member expression appears. It seems we also had an ill-formed test case, mon dieu! Fixes rdar://8576107. llvm-svn: 129493
* Replace a couple of divisions-by-'8' with divisions-by-charwidth. No changeKen Dyck2011-04-141-2/+2
| | | | | | in functionality intended. llvm-svn: 129491
* In C++, when initializing an array from a pascal string, it's OK if the arrayAnders Carlsson2011-04-141-0/+9
| | | | | | | is 1 element smaller than the string, because we can just strip off the last null character. This matches GCC. llvm-svn: 129490
* Add a flag to StringLiteral to keep track of whether the string is a pascal ↵Anders Carlsson2011-04-146-11/+17
| | | | | | string or not. llvm-svn: 129488
* Issue the 2nd fixit even if fix-it hint is supressed.Fariborz Jahanian2011-04-131-6/+5
| | | | | | // rdar://9091893 llvm-svn: 129481
* No fixit hint for builtin expressions which areFariborz Jahanian2011-04-131-6/+8
| | | | | | defined in a macro. // rdar://9091893 llvm-svn: 129465
* Removing the unaligned load tests from builtins-x86.c since they're ↵Bill Wendling2011-04-131-2/+0
| | | | | | generated by a regular 'load' now. llvm-svn: 129464
* From Vassil Vassilev: Give external source's last resort lookup a chance, ↵Axel Naumann2011-04-131-2/+2
| | | | | | even if an identifier could resolve to a builtin. llvm-svn: 129438
* Remove comment that snuck in there.Bill Wendling2011-04-131-1/+1
| | | | llvm-svn: 129434
* It looks like the FreeBSD buildbot needs this for the builtins-x86.c test.Bill Wendling2011-04-131-0/+2
| | | | llvm-svn: 129433
* Teach -Wuninitialized about C++'s typeid expression, including both theChandler Carruth2011-04-131-0/+12
| | | | | | | | | | | evaluated and unevaluated contexts. Add some testing of sizeof and typeid. Both of the typeid tests added here were triggering warnings previously. Now the one false positive is suppressed without suppressing the warning on actually buggy code. llvm-svn: 129431
* Collect the options applicable to the Rewriter methods into a ↵Argyrios Kyrtzidis2011-04-131-8/+10
| | | | | | RewriterOptions struct. llvm-svn: 129430
* Just use a native "load" instead of translating the builtin later. Clang canBill Wendling2011-04-133-4/+2
| | | | | | | | | take it! I wasn't able to get __builtin_ia32_loaddqu to transform into an unaligned load...I'll have to look into it further. llvm-svn: 129427
* Still not used to put the * next to the variable name.Francois Pichet2011-04-131-1/+1
| | | | llvm-svn: 129426
* In Microsoft mode, within class scope, if a CXXScopeSpec's type is equal to ↵Francois Pichet2011-04-131-1/+32
| | | | | | | | | | | | | | | | | | the type of one of the base classes then downgrade the missing typename error to a warning. Up to now this is the only case I found where MSVC doesn't require "typename" at class scope. Really strange! This fixes 1 error when parsing the MSVC 2008 header files. Example: template<class T> class A { public: typedef int TYPE; }; template<class T> class B : public A<T> { public: A<T>::TYPE a; // no typename required because A<T> is a base class. }; llvm-svn: 129425
* Use EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall.Anders Carlsson2011-04-131-16/+6
| | | | llvm-svn: 129424
* Convert the unaligned load builtins to the first-class versions.Bill Wendling2011-04-131-0/+13
| | | | llvm-svn: 129420
* Driver/no-integrated-as: Fix forwarding of -g flag to assembler, when .s inputDaniel Dunbar2011-04-121-5/+10
| | | | | | undergoes preprocessing. llvm-svn: 129414
* Redeclaration of 'self' should be flagged inFariborz Jahanian2011-04-121-0/+11
| | | | | | | objective-c instead of crashing in IRgen. // rdar://9154582. llvm-svn: 129412
* IRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type,Daniel Dunbar2011-04-121-0/+6
| | | | | | | | | | there is no reason to align them higher. - This roughly matches llvm-gcc's r126913. - It is an open question whether or not we should do this for cstring's in general (code size vs optimization potential), for now we just match llvm-gcc until someone wants to run some experiments. llvm-svn: 129410
* We can't emit an aggregate cast as its sub-expression in general justJohn McCall2011-04-121-5/+2
| | | | | | | | | because the result is ignored. The particular example here is with property l-values, but there could be all sorts of lovely casts that this isn't safe for. Sink the check into the one case that seems to actually be capable of honoring this. llvm-svn: 129397
* Teach VariadicMethodTypeChecker to not crash when processing methods ↵Ted Kremenek2011-04-121-1/+2
| | | | | | declared in protocols. llvm-svn: 129395
* Fix another IdempotentOperationsChecker corner case when determining if an ↵Ted Kremenek2011-04-121-1/+1
| | | | | | | | active block on the worklist impacts the results of the check. llvm-svn: 129394
* ArrayBoundCheckerV2: don't arbitrarily warn about indexing before the ↵Ted Kremenek2011-04-121-19/+42
| | | | | | 0-index of a symbolic region. In many cases that isn't really the base offset. llvm-svn: 129366
* This patch adds modeling of strcmp() to the CString checker. Validates ↵Lenny Maiorani2011-04-121-0/+83
| | | | | | inputs are not NULL and are real C strings, then does the comparison and binds the proper return value. Unit tests included. llvm-svn: 129364
* Fix a regression where the initializer implementsFariborz Jahanian2011-04-121-4/+4
| | | | | | | the initialized's protocol and yet clang warns. objective-c issue, // rdar://9267196 llvm-svn: 129363
* Fix AST serialization of reference-to-reference types. This previously causedRichard Smith2011-04-122-4/+5
| | | | | | | | | a crash when deserializing the AST for this: typedef char (&R); extern R &r; llvm-svn: 129358
* static analyzer: invalidate by-ref arguments passed to constructors in a ↵Ted Kremenek2011-04-121-3/+31
| | | | | | 'new' expression. llvm-svn: 129349
* Fix bug in SimpleSValBuilder where '--' pointer arithmetic was treated like ↵Ted Kremenek2011-04-121-1/+2
| | | | | | '++' pointer arithmetic. llvm-svn: 129348
* Don't suggest dynamic_cast or typeid as code completion results whenDouglas Gregor2011-04-121-22/+29
| | | | | | | | RTTI is disabled. Similarly, don't suggest throw or try as code completion results when C++ exceptions are disabled. Fixes <rdar://problem/9193560>. llvm-svn: 129346
* Template static data members can have weak_odr linkage, not justJohn McCall2011-04-122-5/+6
| | | | | | | | weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least were checking for them and then crashing. llvm-svn: 129342
* Objective-C++: The global namespace is an associated namespace of anDouglas Gregor2011-04-121-1/+4
| | | | | | Objective-C pointer type. Fixes <rdar://problem/9142559>. llvm-svn: 129339
* Ignore indirect field declarations. Fixes PR9570.John McCall2011-04-121-0/+5
| | | | llvm-svn: 129337
* RegionStoreManager::invalidateRegions: treat classes the same as structs.Ted Kremenek2011-04-121-3/+3
| | | | llvm-svn: 129333
* After some discussion with Doug, we decided that it made a lot more senseJohn McCall2011-04-1214-326/+223
| | | | | | | | | for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies some of the implementation. Normal member calls work pretty cleanly now, and I added support for propagating unknown-ness through &. llvm-svn: 129331
* C++ static analysis: also invalidate fields of objects that are the callees ↵Ted Kremenek2011-04-112-1/+16
| | | | | | in C++ method calls. llvm-svn: 129308
OpenPOWER on IntegriCloud