]> granicus.if.org Git - clang/log
clang
13 years agoIf the declaration of a C++ member function with an inline definition
Douglas Gregor [Thu, 14 Apr 2011 23:19:27 +0000 (23:19 +0000)]
If the declaration of a C++ member function with an inline definition
is so broken that Sema can't form a declaration for it, don't bother
trying to parse the definition later. Fixes <rdar://problem/9221993>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129547 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen we transform a C++ exception declaration (e.g., for template
Douglas Gregor [Thu, 14 Apr 2011 22:32:28 +0000 (22:32 +0000)]
When we transform a C++ exception declaration (e.g., for template
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>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129544 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for C++0x's range-based for loops, as specified by the C++11 draft standa...
Richard Smith [Thu, 14 Apr 2011 22:09:26 +0000 (22:09 +0000)]
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129541 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDetect when the string "<::" is found in code after a cast or template name and is...
Richard Smith [Thu, 14 Apr 2011 21:45:45 +0000 (21:45 +0000)]
Detect when the string "<::" is found in code after a cast or template name 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129540 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHarden Clang's cursor visitation logic against NULL declaration,
Douglas Gregor [Thu, 14 Apr 2011 21:41:34 +0000 (21:41 +0000)]
Harden Clang's cursor visitation logic against NULL declaration,
statement, and expression pointers. While these shouldn't happen, it's
better to be safe in libclang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129539 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMatch pointer of compatible vection types.
Fariborz Jahanian [Thu, 14 Apr 2011 20:33:36 +0000 (20:33 +0000)]
Match pointer of compatible vection types.
// rdar://9208404

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129536 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen determining the "usage" type of a declaration for the purposes of code
Douglas Gregor [Thu, 14 Apr 2011 20:33:34 +0000 (20:33 +0000)]
When determining the "usage" type of a declaration for the purposes of code
completion, look through block pointer and function pointer types to the
result type of the block/function. Fixes <rdar://problem/9282583>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129535 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement ARM pcs attribute. Basically it's another way of calling convention selecti...
Anton Korobeynikov [Thu, 14 Apr 2011 20:06:49 +0000 (20:06 +0000)]
Implement ARM pcs attribute. Basically it's another way of calling 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129534 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoName mangling of late-specified return types doesn't work if the return type referenc...
Richard Smith [Thu, 14 Apr 2011 19:57:19 +0000 (19:57 +0000)]
Name mangling of late-specified return types doesn't work if the return type references the argument types:

  template<typename T> auto f(T a) -> decltype(a.foo());

Since this is the primary reason for the introduction of this feature, downgrade implementation status to "Some examples work".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129533 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement C++0x [lex.pptoken]p3's handling of <::.
Richard Smith [Thu, 14 Apr 2011 18:36:27 +0000 (18:36 +0000)]
Implement C++0x [lex.pptoken]p3's handling of <::.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129525 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParse an '@' in an Objective-C++ class member specification,
Douglas Gregor [Thu, 14 Apr 2011 17:21:19 +0000 (17:21 +0000)]
Parse an '@' in an Objective-C++ class member specification,
diagnosing it as an error rather than looping infinitely. Also,
explicitly disallow @defs in Objective-C++. Fixes <rdar://problem/9260136>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129521 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChained PCH: Remember when additional specializations are added to a function templat...
Sebastian Redl [Thu, 14 Apr 2011 14:07:59 +0000 (14:07 +0000)]
Chained PCH: Remember when additional specializations are added to a 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129516 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd header guards to include/clang/Basic/ConvertUTF.h.
Sebastian Redl [Thu, 14 Apr 2011 14:07:49 +0000 (14:07 +0000)]
Add header guards to include/clang/Basic/ConvertUTF.h.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129515 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix -H. It was pretty broken.
Sebastian Redl [Thu, 14 Apr 2011 14:07:45 +0000 (14:07 +0000)]
Fix -H. It was pretty broken.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129514 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe ASTReader created by -chain-include used the generated PCH buffers in the wrong...
Sebastian Redl [Thu, 14 Apr 2011 14:07:41 +0000 (14:07 +0000)]
The ASTReader created by -chain-include used the generated PCH buffers in the wrong order. The effect was that all but the first chain-include files was ignored for subsequent compilations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129513 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReturn the correct lastly populated block from CFGBuilder::VisitUnaryExprOrTypeTraitE...
Ted Kremenek [Thu, 14 Apr 2011 01:50:50 +0000 (01:50 +0000)]
Return the correct lastly populated block from CFGBuilder::VisitUnaryExprOrTypeTraitExpr().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129499 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReplace a couple of divide-by-8s with divide-by-charwidths. No change in
Ken Dyck [Thu, 14 Apr 2011 01:00:39 +0000 (01:00 +0000)]
Replace a couple of divide-by-8s with divide-by-charwidths. No change in
functionality intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129496 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-fix r129481 and r129465 properly. Nulls fixits shouldn't be dropped in
Eli Friedman [Thu, 14 Apr 2011 00:51:41 +0000 (00:51 +0000)]
Re-fix r129481 and r129465 properly.  Nulls fixits shouldn't be dropped in
DiagnosticBuilder::AddFixItHint: they will be dropped along with any
other (possibly valid) fixits later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129495 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen creating an implicit member expression through a qualified-id, check that the...
Argyrios Kyrtzidis [Thu, 14 Apr 2011 00:46:47 +0000 (00:46 +0000)]
When creating an implicit member expression through a qualified-id, check 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129493 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReplace a couple of divisions-by-'8' with divisions-by-charwidth. No change
Ken Dyck [Thu, 14 Apr 2011 00:43:09 +0000 (00:43 +0000)]
Replace a couple of divisions-by-'8' with divisions-by-charwidth. No change
in functionality intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129491 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn C++, when initializing an array from a pascal string, it's OK if the array
Anders Carlsson [Thu, 14 Apr 2011 00:41:11 +0000 (00:41 +0000)]
In C++, when initializing an array from a pascal string, it's OK if the array
is 1 element smaller than the string, because we can just strip off the last
null character. This matches GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129490 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a flag to StringLiteral to keep track of whether the string is a pascal string...
Anders Carlsson [Thu, 14 Apr 2011 00:40:03 +0000 (00:40 +0000)]
Add a flag to StringLiteral to keep track of whether the string is a pascal string or not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129488 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename test.
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

13 years agoAdd -no-canonical-prefixes to tests which assert on the name of the
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

13 years agoIssue the 2nd fixit even if fix-it hint is supressed.
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

13 years agoAdd Objective-C++ files to those accepted by ccc-analyzer.
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

13 years agoUpdate public analyzer build to checker-256.
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

13 years agoNo fixit hint for builtin expressions which are
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

13 years agoRemoving the unaligned load tests from builtins-x86.c since they're generated by...
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

13 years agoFrom Vassil Vassilev: Give external source's last resort lookup a chance, even if...
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

13 years agoRemove comment that snuck in there.
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

13 years agoIt looks like the FreeBSD buildbot needs this for the builtins-x86.c test.
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

13 years agoTeach -Wuninitialized about C++'s typeid expression, including both the
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

13 years agoCollect the options applicable to the Rewriter methods into a RewriterOptions struct.
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

13 years agoJust use a native "load" instead of translating the builtin later. Clang can
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

13 years agoStill not used to put the * next to the variable name.
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

13 years agoIn Microsoft mode, within class scope, if a CXXScopeSpec's type is equal to the type...
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

13 years agoUse EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall.
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

13 years agoConvert the unaligned load builtins to the first-class versions.
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

13 years agoDriver/no-integrated-as: Fix forwarding of -g flag to assembler, when .s input
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

13 years agoRedeclaration of 'self' should be flagged in
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

13 years agoIRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type,
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

13 years agoWe can't emit an aggregate cast as its sub-expression in general just
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

13 years agoDriver: Don't treat -m{abi,arch,cpu,cmodel}= as "driver" options, they don't
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

13 years agoTeach VariadicMethodTypeChecker to not crash when processing methods declared in...
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

13 years agoFix another IdempotentOperationsChecker corner case when determining if an active...
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

13 years agoProvide options to explicitly enable/disable checkers in scan-build.
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

13 years agoEnable C++ static analysis support in ccc-analyzer.
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

13 years agoArrayBoundCheckerV2: don't arbitrarily warn about indexing before the 0-index of...
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

13 years agoThis patch adds modeling of strcmp() to the CString checker. Validates inputs are...
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

13 years agoFix a regression where the initializer implements
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

13 years agoFix AST serialization of reference-to-reference types. This previously caused
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

13 years agostatic analyzer: invalidate by-ref arguments passed to constructors in a 'new' expres...
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

13 years agoFix bug in SimpleSValBuilder where '--' pointer arithmetic was treated like '++'...
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

13 years agoDon't suggest dynamic_cast or typeid as code completion results when
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

13 years agoTemplate static data members can have weak_odr linkage, not just
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

13 years agoWhoops.
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

13 years agoObjective-C++: The global namespace is an associated namespace of an
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

13 years agoIgnore indirect field declarations. Fixes PR9570.
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

13 years agoFormatting.
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

13 years agoThis test works now; enable it.
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

13 years agoRegionStoreManager::invalidateRegions: treat classes the same as structs.
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

13 years agoAfter some discussion with Doug, we decided that it made a lot more sense
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

13 years agoTeach GRState::getSValAsScalarOrLoc() about C++ references.
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

13 years agoC++ static analysis: also invalidate fields of objects that are the callees in C...
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

13 years agoTypo.
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

13 years agoFixup more objc rwriter bug having to do with
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

13 years agofix the path to ld.so for darwin/ppc, resolving PR9677. Patch
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

13 years agoIf there's an invoke destination, we should use invoke instead of call when calling...
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

13 years agoMore __unknown_anytype work.
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

13 years agoRemove CK_DynamicToNull.
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

13 years agoWhen we know that a dynamic_cast always returns null, we can make
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

13 years agoAdd CXXDynamicCastExpr::isAlwaysNull() which will be replacing the cast kind I added.
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

13 years agoClean up CodeGenFunction::EmitDynamicCast. No functionality change.
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

13 years agoReplace a couple of Builder.CreateICmpEQ with Builder.CreateIsNull. No functionality...
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

13 years agoPR9669: implement correct checking for [dcl.init.string]p2.
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

13 years agoRemove the CodeGenCXX/dyncast.cpp test; it isn't really super useful to match on...
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

13 years agoAs a first step towards fixing PR9641, add a CK_DynamicToNull cast kind which
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

13 years agoSimplify calling CheckPlaceholderExpr, converge on it in a few places,
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

13 years agoStrip off parens and no-op casts when deciding if an expr can be devirtualized. Fixes...
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

13 years agoChange CollectPrimaryBases to collect the bases in the right order. Fixes one half...
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

13 years agoMake -fdump-vtable-layouts also dump vtable indices for all virtual member functions...
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

13 years agoReflect rename on LLVM cmake file.
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

13 years agoEnhance the diagnostic for literal float -> int conversions to suggest
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

13 years agoRefactor 129240 to merge the old default argument into the new parameter.
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

13 years agoPR9580: Handle vectors correctly in ScalarExprEmitter::EmitRem.
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

13 years agoMSVC accepts that default parameters be redefined for member functions
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

13 years agolibclang output name is now libclang. This solves a name collision
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

13 years agoFix a bunch of major problems with __unknown_anytype and properly test
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

13 years agoMake sure we or together the overflow flags of the multiply and add, so the
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

13 years agostrcat() and strncat() model additions to CStringChecker.
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

13 years agorefactor flags for TokenKinds.def
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

13 years agorefactor -ccc-gcc-name code
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

13 years agoPR8369: make __attribute((regparm(0))) work correctly. Original patch by
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

13 years agoClean up the bool conversion warning. Group it with other conversion
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

13 years agoAdd support for warning on general null pointer expressions of boolean
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

13 years agofix indentation
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

13 years agoaccept -x objc-cpp-output as an alias for -x objective-c-cpp-output,
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

13 years agoadd a __sync_swap builtin to fill out the rest of the __sync builtins.
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

13 years agoConvert the PointerWidthInBytes variable in EmitMemberPointer() to CharUnits
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