Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Replace a couple of divisions-by-'8' with divisions-by-charwidth. No change | Ken Dyck | 2011-04-14 | 1 | -2/+2 |
| | | | | | | in functionality intended. llvm-svn: 129491 | ||||
* | In C++, when initializing an array from a pascal string, it's OK if the array | Anders Carlsson | 2011-04-14 | 1 | -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 Carlsson | 2011-04-14 | 6 | -11/+17 |
| | | | | | | string or not. llvm-svn: 129488 | ||||
* | Issue the 2nd fixit even if fix-it hint is supressed. | Fariborz Jahanian | 2011-04-13 | 1 | -6/+5 |
| | | | | | | // rdar://9091893 llvm-svn: 129481 | ||||
* | No fixit hint for builtin expressions which are | Fariborz Jahanian | 2011-04-13 | 1 | -6/+8 |
| | | | | | | defined in a macro. // rdar://9091893 llvm-svn: 129465 | ||||
* | Removing the unaligned load tests from builtins-x86.c since they're ↵ | Bill Wendling | 2011-04-13 | 1 | -2/+0 |
| | | | | | | generated by a regular 'load' now. llvm-svn: 129464 | ||||
* | From Vassil Vassilev: Give external source's last resort lookup a chance, ↵ | Axel Naumann | 2011-04-13 | 1 | -2/+2 |
| | | | | | | even if an identifier could resolve to a builtin. llvm-svn: 129438 | ||||
* | Remove comment that snuck in there. | Bill Wendling | 2011-04-13 | 1 | -1/+1 |
| | | | | llvm-svn: 129434 | ||||
* | It looks like the FreeBSD buildbot needs this for the builtins-x86.c test. | Bill Wendling | 2011-04-13 | 1 | -0/+2 |
| | | | | llvm-svn: 129433 | ||||
* | Teach -Wuninitialized about C++'s typeid expression, including both the | Chandler Carruth | 2011-04-13 | 1 | -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 Kyrtzidis | 2011-04-13 | 1 | -8/+10 |
| | | | | | | RewriterOptions struct. llvm-svn: 129430 | ||||
* | Just use a native "load" instead of translating the builtin later. Clang can | Bill Wendling | 2011-04-13 | 3 | -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 Pichet | 2011-04-13 | 1 | -1/+1 |
| | | | | llvm-svn: 129426 | ||||
* | In Microsoft mode, within class scope, if a CXXScopeSpec's type is equal to ↵ | Francois Pichet | 2011-04-13 | 1 | -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 Carlsson | 2011-04-13 | 1 | -16/+6 |
| | | | | llvm-svn: 129424 | ||||
* | Convert the unaligned load builtins to the first-class versions. | Bill Wendling | 2011-04-13 | 1 | -0/+13 |
| | | | | llvm-svn: 129420 | ||||
* | Driver/no-integrated-as: Fix forwarding of -g flag to assembler, when .s input | Daniel Dunbar | 2011-04-12 | 1 | -5/+10 |
| | | | | | | undergoes preprocessing. llvm-svn: 129414 | ||||
* | Redeclaration of 'self' should be flagged in | Fariborz Jahanian | 2011-04-12 | 1 | -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 Dunbar | 2011-04-12 | 1 | -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 just | John McCall | 2011-04-12 | 1 | -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 Kremenek | 2011-04-12 | 1 | -1/+2 |
| | | | | | | declared in protocols. llvm-svn: 129395 | ||||
* | Fix another IdempotentOperationsChecker corner case when determining if an ↵ | Ted Kremenek | 2011-04-12 | 1 | -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 Kremenek | 2011-04-12 | 1 | -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 Maiorani | 2011-04-12 | 1 | -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 implements | Fariborz Jahanian | 2011-04-12 | 1 | -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 caused | Richard Smith | 2011-04-12 | 2 | -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 Kremenek | 2011-04-12 | 1 | -3/+31 |
| | | | | | | 'new' expression. llvm-svn: 129349 | ||||
* | Fix bug in SimpleSValBuilder where '--' pointer arithmetic was treated like ↵ | Ted Kremenek | 2011-04-12 | 1 | -1/+2 |
| | | | | | | '++' pointer arithmetic. llvm-svn: 129348 | ||||
* | Don't suggest dynamic_cast or typeid as code completion results when | Douglas Gregor | 2011-04-12 | 1 | -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 just | John McCall | 2011-04-12 | 2 | -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 an | Douglas Gregor | 2011-04-12 | 1 | -1/+4 |
| | | | | | | Objective-C pointer type. Fixes <rdar://problem/9142559>. llvm-svn: 129339 | ||||
* | Ignore indirect field declarations. Fixes PR9570. | John McCall | 2011-04-12 | 1 | -0/+5 |
| | | | | llvm-svn: 129337 | ||||
* | RegionStoreManager::invalidateRegions: treat classes the same as structs. | Ted Kremenek | 2011-04-12 | 1 | -3/+3 |
| | | | | llvm-svn: 129333 | ||||
* | After some discussion with Doug, we decided that it made a lot more sense | John McCall | 2011-04-12 | 14 | -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 Kremenek | 2011-04-11 | 2 | -1/+16 |
| | | | | | | in C++ method calls. llvm-svn: 129308 | ||||
* | Fixup more objc rwriter bug having to do with | Fariborz Jahanian | 2011-04-11 | 2 | -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. Patch | Chris Lattner | 2011-04-11 | 1 | -2/+2 |
| | | | | | | by Jeremy Huddleston! llvm-svn: 129299 | ||||
* | If there's an invoke destination, we should use invoke instead of call when ↵ | Anders Carlsson | 2011-04-11 | 1 | -7/+25 |
| | | | | | | calling the __cxa_bad_typeid function. Fixes PR7400. llvm-svn: 129273 | ||||
* | More __unknown_anytype work. | John McCall | 2011-04-11 | 12 | -116/+373 |
| | | | | llvm-svn: 129269 | ||||
* | Remove CK_DynamicToNull. | Anders Carlsson | 2011-04-11 | 8 | -22/+3 |
| | | | | llvm-svn: 129265 | ||||
* | When we know that a dynamic_cast always returns null, we can make | Anders Carlsson | 2011-04-11 | 1 | -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 Carlsson | 2011-04-11 | 1 | -0/+30 |
| | | | | | | I added. llvm-svn: 129263 | ||||
* | Clean up CodeGenFunction::EmitDynamicCast. No functionality change. | Anders Carlsson | 2011-04-11 | 1 | -104/+141 |
| | | | | llvm-svn: 129262 | ||||
* | Replace a couple of Builder.CreateICmpEQ with Builder.CreateIsNull. No ↵ | Anders Carlsson | 2011-04-11 | 2 | -9/+3 |
| | | | | | | functionality change. llvm-svn: 129261 | ||||
* | PR9669: implement correct checking for [dcl.init.string]p2. | Eli Friedman | 2011-04-11 | 1 | -5/+14 |
| | | | | llvm-svn: 129260 | ||||
* | As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind which | Anders Carlsson | 2011-04-10 | 8 | -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 McCall | 2011-04-10 | 4 | -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 Carlsson | 2011-04-10 | 1 | -0/+26 |
| | | | | | | devirtualized. Fixes the second half of PR9660. llvm-svn: 129253 | ||||
* | Change CollectPrimaryBases to collect the bases in the right order. Fixes ↵ | Anders Carlsson | 2011-04-10 | 1 | -7/+9 |
| | | | | | | one half of PR9660. llvm-svn: 129252 | ||||
* | Make -fdump-vtable-layouts also dump vtable indices for all virtual member ↵ | Anders Carlsson | 2011-04-10 | 1 | -0/+42 |
| | | | | | | functions in the class. llvm-svn: 129250 |