summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fixup more objc rwriter bug having to do withFariborz Jahanian2011-04-112-9/+23
| | | | | | | rewriting of blocks which have objective-c stuff which need be rewritten as well. // rdar://9254348 llvm-svn: 129300
* fix the path to ld.so for darwin/ppc, resolving PR9677. PatchChris Lattner2011-04-111-2/+2
| | | | | | by Jeremy Huddleston! llvm-svn: 129299
* If there's an invoke destination, we should use invoke instead of call when ↵Anders Carlsson2011-04-111-7/+25
| | | | | | calling the __cxa_bad_typeid function. Fixes PR7400. llvm-svn: 129273
* More __unknown_anytype work.John McCall2011-04-1112-116/+373
| | | | llvm-svn: 129269
* Remove CK_DynamicToNull.Anders Carlsson2011-04-118-22/+3
| | | | llvm-svn: 129265
* When we know that a dynamic_cast always returns null, we can makeAnders Carlsson2011-04-111-10/+32
| | | | | | | CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast exception. llvm-svn: 129264
* Add CXXDynamicCastExpr::isAlwaysNull() which will be replacing the cast kind ↵Anders Carlsson2011-04-111-0/+30
| | | | | | I added. llvm-svn: 129263
* Clean up CodeGenFunction::EmitDynamicCast. No functionality change.Anders Carlsson2011-04-111-104/+141
| | | | llvm-svn: 129262
* Replace a couple of Builder.CreateICmpEQ with Builder.CreateIsNull. No ↵Anders Carlsson2011-04-112-9/+3
| | | | | | functionality change. llvm-svn: 129261
* PR9669: implement correct checking for [dcl.init.string]p2.Eli Friedman2011-04-111-5/+14
| | | | llvm-svn: 129260
* As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind whichAnders Carlsson2011-04-108-3/+22
| | | | | | | | | | | | | | | | | | represents a dynamic cast where we know that the result is always null. For example: struct A { virtual ~A(); }; struct B final : A { }; struct C { }; bool f(B* b) { return dynamic_cast<C*>(b); } llvm-svn: 129256
* Simplify calling CheckPlaceholderExpr, converge on it in a few places,John McCall2011-04-104-62/+41
| | | | | | and move a vector-splat check to follow l-value conversion. llvm-svn: 129254
* Strip off parens and no-op casts when deciding if an expr can be ↵Anders Carlsson2011-04-101-0/+26
| | | | | | devirtualized. Fixes the second half of PR9660. llvm-svn: 129253
* Change CollectPrimaryBases to collect the bases in the right order. Fixes ↵Anders Carlsson2011-04-101-7/+9
| | | | | | one half of PR9660. llvm-svn: 129252
* Make -fdump-vtable-layouts also dump vtable indices for all virtual member ↵Anders Carlsson2011-04-101-0/+42
| | | | | | functions in the class. llvm-svn: 129250
OpenPOWER on IntegriCloud