]>
granicus.if.org Git - clang/log
Anders Carlsson [Wed, 13 Apr 2011 23:55:47 +0000 (23:55 +0000)]
Rename test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129486
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 13 Apr 2011 22:28:36 +0000 (22:28 +0000)]
Add -no-canonical-prefixes to tests which assert on the name of the
built clang binary that is used by the test. Build systems that use
symlinks for build outputs will fail these assertions otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129482
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 13 Apr 2011 22:18:37 +0000 (22:18 +0000)]
Issue the 2nd fixit even if fix-it hint is supressed.
// rdar://
9091893
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129481
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 13 Apr 2011 21:52:05 +0000 (21:52 +0000)]
Add Objective-C++ files to those accepted by ccc-analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129475
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 13 Apr 2011 21:48:34 +0000 (21:48 +0000)]
Update public analyzer build to checker-256.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129473
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 13 Apr 2011 20:31:26 +0000 (20:31 +0000)]
No fixit hint for builtin expressions which are
defined in a macro. // rdar://
9091893
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129465
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Apr 2011 20:17:22 +0000 (20:17 +0000)]
Removing the unaligned load tests from builtins-x86.c since they're generated by a regular 'load' now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129464
91177308 -0d34-0410-b5e6-
96231b3b80d8
Axel Naumann [Wed, 13 Apr 2011 13:19:46 +0000 (13:19 +0000)]
From Vassil Vassilev: Give external source's last resort lookup a chance, even if an identifier could resolve to a builtin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129438
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Apr 2011 10:05:14 +0000 (10:05 +0000)]
Remove comment that snuck in there.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129434
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Apr 2011 10:02:54 +0000 (10:02 +0000)]
It looks like the FreeBSD buildbot needs this for the builtins-x86.c test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129433
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 13 Apr 2011 08:18:42 +0000 (08:18 +0000)]
Teach -Wuninitialized about C++'s typeid expression, including both the
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129431
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 13 Apr 2011 07:15:11 +0000 (07:15 +0000)]
Collect the options applicable to the Rewriter methods into a RewriterOptions struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129430
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Apr 2011 05:58:17 +0000 (05:58 +0000)]
Just use a native "load" instead of translating the builtin later. Clang can
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129427
91177308 -0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Wed, 13 Apr 2011 02:44:57 +0000 (02:44 +0000)]
Still not used to put the * next to the variable name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129426
91177308 -0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Wed, 13 Apr 2011 02:38:49 +0000 (02:38 +0000)]
In Microsoft mode, within class scope, if a CXXScopeSpec's type is equal to 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.
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129425
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 13 Apr 2011 02:35:36 +0000 (02:35 +0000)]
Use EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129424
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Apr 2011 00:36:37 +0000 (00:36 +0000)]
Convert the unaligned load builtins to the first-class versions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129420
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 12 Apr 2011 23:59:20 +0000 (23:59 +0000)]
Driver/no-integrated-as: Fix forwarding of -g flag to assembler, when .s input
undergoes preprocessing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129414
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 12 Apr 2011 23:39:33 +0000 (23:39 +0000)]
Redeclaration of 'self' should be flagged in
objective-c instead of crashing in IRgen.
// rdar://
9154582 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 12 Apr 2011 23:30:52 +0000 (23:30 +0000)]
IRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type,
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129410
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 22:02:02 +0000 (22:02 +0000)]
We can't emit an aggregate cast as its sub-expression in general just
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129397
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 12 Apr 2011 21:53:33 +0000 (21:53 +0000)]
Driver: Don't treat -m{abi,arch,cpu,cmodel}= as "driver" options, they don't
modify the driver planning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129396
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 21:47:05 +0000 (21:47 +0000)]
Teach VariadicMethodTypeChecker to not crash when processing methods declared in protocols.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 21:47:02 +0000 (21:47 +0000)]
Fix another IdempotentOperationsChecker corner case when determining if an active block on the worklist
impacts the results of the check.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129394
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 21:47:00 +0000 (21:47 +0000)]
Provide options to explicitly enable/disable checkers in scan-build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129393
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 21:46:57 +0000 (21:46 +0000)]
Enable C++ static analysis support in ccc-analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129392
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 17:21:33 +0000 (17:21 +0000)]
ArrayBoundCheckerV2: don't arbitrarily warn about indexing before the 0-index of a symbolic region. In many cases that isn't really the base offset.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129366
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lenny Maiorani [Tue, 12 Apr 2011 17:08:43 +0000 (17:08 +0000)]
This patch adds modeling of strcmp() to the CString checker. Validates inputs are not NULL and are real C strings, then does the comparison and binds the proper return value. Unit tests included.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129364
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 12 Apr 2011 16:34:14 +0000 (16:34 +0000)]
Fix a regression where the initializer implements
the initialized's protocol and yet clang warns.
objective-c issue, // rdar://
9267196
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129363
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 12 Apr 2011 10:38:03 +0000 (10:38 +0000)]
Fix AST serialization of reference-to-reference types. This previously caused
a crash when deserializing the AST for this:
typedef char (&R);
extern R &r;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129358
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 05:12:39 +0000 (05:12 +0000)]
static analyzer: invalidate by-ref arguments passed to constructors in a 'new' expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129349
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 03:49:37 +0000 (03:49 +0000)]
Fix bug in SimpleSValBuilder where '--' pointer arithmetic was treated like '++' pointer arithmetic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129348
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 12 Apr 2011 02:47:21 +0000 (02:47 +0000)]
Don't suggest dynamic_cast or typeid as code completion results when
RTTI is disabled. Similarly, don't suggest throw or try as code
completion results when C++ exceptions are disabled. Fixes
<rdar://problem/
9193560 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129346
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 01:46:54 +0000 (01:46 +0000)]
Template static data members can have weak_odr linkage, not just
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129342
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 01:15:45 +0000 (01:15 +0000)]
Whoops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129341
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 12 Apr 2011 01:02:45 +0000 (01:02 +0000)]
Objective-C++: The global namespace is an associated namespace of an
Objective-C pointer type. Fixes <rdar://problem/
9142559 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129339
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 01:01:22 +0000 (01:01 +0000)]
Ignore indirect field declarations. Fixes PR9570.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129337
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 00:59:32 +0000 (00:59 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129336
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 00:57:12 +0000 (00:57 +0000)]
This test works now; enable it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129335
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 00:44:31 +0000 (00:44 +0000)]
RegionStoreManager::invalidateRegions: treat classes the same as structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129333
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 12 Apr 2011 00:42:48 +0000 (00:42 +0000)]
After some discussion with Doug, we decided that it made a lot more sense
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 &.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129331
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 12 Apr 2011 00:28:12 +0000 (00:28 +0000)]
Teach GRState::getSValAsScalarOrLoc() about C++ references.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129329
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 11 Apr 2011 22:22:05 +0000 (22:22 +0000)]
C++ static analysis: also invalidate fields of objects that are the callees in C++ method calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 11 Apr 2011 21:26:35 +0000 (21:26 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 11 Apr 2011 21:17:02 +0000 (21:17 +0000)]
Fixup more objc rwriter bug having to do with
rewriting of blocks which have objective-c
stuff which need be rewritten as well. // rdar://
9254348
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 11 Apr 2011 21:15:37 +0000 (21:15 +0000)]
fix the path to ld.so for darwin/ppc, resolving PR9677. Patch
by Jeremy Huddleston!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129299
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 14:13:40 +0000 (14:13 +0000)]
If there's an invoke destination, we should use invoke instead of call when calling the __cxa_bad_typeid function. Fixes PR7400.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129273
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 11 Apr 2011 07:02:50 +0000 (07:02 +0000)]
More __unknown_anytype work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 02:03:26 +0000 (02:03 +0000)]
Remove CK_DynamicToNull.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129265
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 01:45:29 +0000 (01:45 +0000)]
When we know that a dynamic_cast always returns null, we can make
CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast
exception.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129264
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 01:43:55 +0000 (01:43 +0000)]
Add CXXDynamicCastExpr::isAlwaysNull() which will be replacing the cast kind I added.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129263
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 00:46:40 +0000 (00:46 +0000)]
Clean up CodeGenFunction::EmitDynamicCast. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129262
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 11 Apr 2011 00:30:07 +0000 (00:30 +0000)]
Replace a couple of Builder.CreateICmpEQ with Builder.CreateIsNull. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129261
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 11 Apr 2011 00:23:45 +0000 (00:23 +0000)]
PR9669: implement correct checking for [dcl.init.string]p2.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 10 Apr 2011 23:15:15 +0000 (23:15 +0000)]
Remove the CodeGenCXX/dyncast.cpp test; it isn't really super useful to match on huge chunks of LLVM output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129258
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 10 Apr 2011 20:33:22 +0000 (20:33 +0000)]
As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind which
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);
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129256
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 10 Apr 2011 19:13:55 +0000 (19:13 +0000)]
Simplify calling CheckPlaceholderExpr, converge on it in a few places,
and move a vector-splat check to follow l-value conversion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129254
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 10 Apr 2011 18:20:53 +0000 (18:20 +0000)]
Strip off parens and no-op casts when deciding if an expr can be devirtualized. Fixes the second half of PR9660.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129253
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 10 Apr 2011 18:00:32 +0000 (18:00 +0000)]
Change CollectPrimaryBases to collect the bases in the right order. Fixes one half of PR9660.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129252
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 10 Apr 2011 17:42:45 +0000 (17:42 +0000)]
Make -fdump-vtable-layouts also dump vtable indices for all virtual member functions in the class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129250
91177308 -0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 10 Apr 2011 16:17:31 +0000 (16:17 +0000)]
Reflect rename on LLVM cmake file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129246
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 10 Apr 2011 08:36:24 +0000 (08:36 +0000)]
Enhance the diagnostic for literal float -> int conversions to suggest
rewriting the literal when the value is integral. It is not uncommon to
see code written as:
const int kBigNumber = 42e5;
Without any real awareness that this is no longer an ICE. The note helps
automate and ease the process of fixing code that violates the warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129243
91177308 -0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Sun, 10 Apr 2011 04:58:30 +0000 (04:58 +0000)]
Refactor 129240 to merge the old default argument into the new parameter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129242
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 10 Apr 2011 04:44:11 +0000 (04:44 +0000)]
PR9580: Handle vectors correctly in ScalarExprEmitter::EmitRem.
While I'm here, FileCheck-ize the ext-vector test, so we actually check
what it is generating.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129241
91177308 -0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Sun, 10 Apr 2011 03:03:52 +0000 (03:03 +0000)]
MSVC accepts that default parameters be redefined for member functions
of template class. The new value is ignored.
This fixes 1 error when parsing MSVC 2010 header files with clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 10 Apr 2011 02:29:27 +0000 (02:29 +0000)]
libclang output name is now libclang. This solves a name collision
when building with Visual Studio. `clang.dll' and `clang.exe' would
have the same `clang.ilk' and `clang.pdb'. On a serial build those
files would be overwritten as clang.exe/clang.dll are created. On a
parallel build there is a risk of both files being written at the same
time. On that case VS fails.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129239
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 9 Apr 2011 22:50:59 +0000 (22:50 +0000)]
Fix a bunch of major problems with __unknown_anytype and properly test
for them. The only major missing feature is references.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129234
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 9 Apr 2011 19:54:33 +0000 (19:54 +0000)]
Make sure we or together the overflow flags of the multiply and add, so the
check is triggered appropriately. Reported on cfe-dev.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129231
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lenny Maiorani [Sat, 9 Apr 2011 15:12:58 +0000 (15:12 +0000)]
strcat() and strncat() model additions to CStringChecker.
Validates inputs are not NULL, checks for overlapping strings, concatenates the strings checking for buffer overflow, sets the length of the destination string to the sum of the s1 length and the s2 length, binds the return value to the s1 value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129215
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Sat, 9 Apr 2011 13:34:05 +0000 (13:34 +0000)]
refactor flags for TokenKinds.def
Make KEYALL a combination of all other flags instead
of its own separate flag. Also rewrite the enum
definitions in hex instead of decimal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129213
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Sat, 9 Apr 2011 13:31:59 +0000 (13:31 +0000)]
refactor -ccc-gcc-name code
Put the logic for deciding the default name for gcc/g++
in the only place that actually cares about it.
This also pushes an ifdef out of the generic driver code
to a little further down, when the target is actually known.
Hopefully it can be changed into just a runtime check
in the future.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129212
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 9 Apr 2011 08:18:08 +0000 (08:18 +0000)]
PR8369: make __attribute((regparm(0))) work correctly. Original patch by
pageexec@freemail.hu, tweaks by me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 9 Apr 2011 07:48:17 +0000 (07:48 +0000)]
Clean up the bool conversion warning. Group it with other conversion
warnings, and make its text appropriate for constant bool expressions
other than 'false'. This should finish off PR9612.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129205
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 9 Apr 2011 07:32:05 +0000 (07:32 +0000)]
Add support for warning on general null pointer expressions of boolean
type rather than just the literal 'false'. This begins fixing PR9612,
but the message is now wrong. WIP, the cleanup of the messaging is next.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Apr 2011 07:11:53 +0000 (07:11 +0000)]
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129202
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Apr 2011 07:09:31 +0000 (07:09 +0000)]
accept -x objc-cpp-output as an alias for -x objective-c-cpp-output,
per PR9577
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129201
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Apr 2011 03:57:26 +0000 (03:57 +0000)]
add a __sync_swap builtin to fill out the rest of the __sync builtins.
Patch by Dave Zarzycki!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sat, 9 Apr 2011 01:30:02 +0000 (01:30 +0000)]
Convert the PointerWidthInBytes variable in EmitMemberPointer() to CharUnits
to eliminate a divide-by-8. No change in functionality intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129180
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sat, 9 Apr 2011 01:09:56 +0000 (01:09 +0000)]
Eliminate a divide-by-8 in BuildVMIClassTypeInfo() by using CharUnits for
the base offset. No change in functionality intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129179
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 9 Apr 2011 00:53:03 +0000 (00:53 +0000)]
Remove a pair of unused diagnostic messages.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129178
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Apr 2011 00:25:15 +0000 (00:25 +0000)]
Apply explicit braces to avoid ambiguous 'else' [-Wparentheses]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129176
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 9 Apr 2011 00:01:04 +0000 (00:01 +0000)]
Eat the UTF-8 BOM at the beginning of a file since it's ignored anyhow.
Nom Nom Nom.
Patch by Anton Korobeynikov!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129174
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Apr 2011 23:54:05 +0000 (23:54 +0000)]
complete documentation of flags, patch by nobled
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129173
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 8 Apr 2011 23:48:29 +0000 (23:48 +0000)]
Fixes a rewrting bug of a property-dot syntax expression inside
a block. First part of // rdar://
9254348
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129171
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 8 Apr 2011 23:35:25 +0000 (23:35 +0000)]
Properly traverse a ObjCMethodDecl in RecursiveASTVisitor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129169
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Apr 2011 22:58:43 +0000 (22:58 +0000)]
typo fix + expand
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129167
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Apr 2011 22:42:35 +0000 (22:42 +0000)]
Start overhauling static analyzer support for C++ constructors. The inlining support isn't complete, and needs
to be reworked to model CallEnter/CallExit (just like all other calls). For now, treat constructors mostly
like other function calls, making the analysis of C++ code just a little more useful.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129166
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Apr 2011 22:34:21 +0000 (22:34 +0000)]
Minor format fix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129164
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Apr 2011 22:18:01 +0000 (22:18 +0000)]
Document -ftrap-function= option
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129162
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Apr 2011 21:56:52 +0000 (21:56 +0000)]
Do not use zero as an upper bound for unbounded array because upper bound zero also indicates one element array.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129157
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Apr 2011 21:37:45 +0000 (21:37 +0000)]
Rename -mtrap_function= to -ftrap_function= since it's now a target neutral options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129153
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Apr 2011 18:47:41 +0000 (18:47 +0000)]
Add -mtrap_function=<> option. rdar://
9257465
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129145
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Wiegley [Fri, 8 Apr 2011 18:41:53 +0000 (18:41 +0000)]
Use ExprResult& instead of Expr *& in Sema
This patch authored by Eric Niebler.
Many methods on the Sema class (e.g. ConvertPropertyForRValue) take Expr
pointers as in/out parameters (Expr *&). This is especially true for the
routines that apply implicit conversions to nodes in-place. This design is
workable only as long as those conversions cannot fail. If they are allowed
to fail, they need a way to report their failures. The typical way of doing
this in clang is to use an ExprResult, which has an extra bit to signal a
valid/invalid state. Returning ExprResult is de riguour elsewhere in the Sema
interface. We suggest changing the Expr *& parameters in the Sema interface
to ExprResult &. This increases interface consistency and maintainability.
This interface change is important for work supporting MS-style C++
properties. For reasons explained here
<http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013180.html>,
seemingly trivial operations like rvalue/lvalue conversions that formerly
could not fail now can. (The reason is that given the semantics of the
feature, getter/setter method lookup cannot happen until the point of use, at
which point it may be found that the method does not exist, or it may have the
wrong type, or overload resolution may fail, or it may be inaccessible.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129143
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 8 Apr 2011 18:25:29 +0000 (18:25 +0000)]
Warn for any kind of initialization if initializer does not
implement lhs's protocols. // rdar://
9091389 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129142
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Apr 2011 18:06:54 +0000 (18:06 +0000)]
fix a typo, patch by PaX team.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129141
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 8 Apr 2011 06:47:15 +0000 (06:47 +0000)]
Switch 'is possibly uninitialized' to 'may be uninitialized' based on
Chris's feedback.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129127
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 8 Apr 2011 06:33:38 +0000 (06:33 +0000)]
Now that the analyzer is distinguishing between uninitialized uses that
definitely have a path leading to them, and possibly have a path leading
to them; reflect that distinction in the warning text emitted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129126
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 7 Apr 2011 20:41:03 +0000 (20:41 +0000)]
Driver: Don't attempt to forward some Clang-only options to cc1.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129108
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 7 Apr 2011 20:19:21 +0000 (20:19 +0000)]
Frontend/CC_LOG_DIAGNOSTICS: Fix thinko and open diag log in append mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129103
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Apr 2011 20:02:56 +0000 (20:02 +0000)]
Teach -Wuninitialized to not warn about variables declared in C++ catch statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129102
91177308 -0d34-0410-b5e6-
96231b3b80d8