]> granicus.if.org Git - clang/log
clang
13 years agoChange the representation of GNU ?: expressions to use a different expression
John McCall [Thu, 17 Feb 2011 10:25:35 +0000 (10:25 +0000)]
Change the representation of GNU ?: expressions to use a different expression
class and to bind the shared value using OpaqueValueExpr.  This fixes an
unnoticed problem with deserialization of these expressions where the
deserialized form would lose the vital pointer-equality trait;  or rather,
it fixes it because this patch also does the right thing for deserializing
OVEs.

Change OVEs to not be a "temporary object" in the sense that copy elision is
permitted.

This new representation is not totally unawkward to work with, but I think
that's really part and parcel with the semantics we're modelling here.  In
particular, it's much easier to fix things like the copy elision bug and to
make the CFG look right.

I've tried to update the analyzer to deal with this in at least some
obvious cases, and I think we get a much better CFG out, but the printing
of OpaqueValueExprs probably needs some work.

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

13 years agolib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.
NAKAMURA Takumi [Thu, 17 Feb 2011 08:51:47 +0000 (08:51 +0000)]
lib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.

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

13 years agoTriple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.
NAKAMURA Takumi [Thu, 17 Feb 2011 08:51:38 +0000 (08:51 +0000)]
Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.

No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.

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

13 years agoFix whitespace.
NAKAMURA Takumi [Thu, 17 Feb 2011 08:50:50 +0000 (08:50 +0000)]
Fix whitespace.

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

13 years agoDevirtualize Decl::getNextRedeclaration().
Douglas Gregor [Thu, 17 Feb 2011 08:47:29 +0000 (08:47 +0000)]
Devirtualize Decl::getNextRedeclaration().

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

13 years agoImplement -Wenum-compare, which warns when comparing two enums of
Chandler Carruth [Thu, 17 Feb 2011 08:37:06 +0000 (08:37 +0000)]
Implement -Wenum-compare, which warns when comparing two enums of
different types. We omit the warning when the enum types are anonymous.
Unlike GCC, this warning does not distinguish between C++ and C/ObjC for
controling whether it is on by default, it is always on by default.

Original patch contributed by Richard Trieu (@ Google), I fixed some
style issues, and cleaned it up for submission.

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

13 years agoSimple little optimization to Decl::getCanonicalDecl(), eliminating some heavyweight...
Douglas Gregor [Thu, 17 Feb 2011 08:14:56 +0000 (08:14 +0000)]
Simple little optimization to Decl::getCanonicalDecl(), eliminating some heavyweight machinery and indirection that we don't need

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

13 years agoDevirtualize Decl::getSourceRange()
Douglas Gregor [Thu, 17 Feb 2011 08:12:32 +0000 (08:12 +0000)]
Devirtualize Decl::getSourceRange()

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

13 years agoDevirtualize Decl::getCanonicalDecl().
Douglas Gregor [Thu, 17 Feb 2011 07:58:36 +0000 (07:58 +0000)]
Devirtualize Decl::getCanonicalDecl().

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

13 years agoStep #1/N of implementing support for __label__: split labels into
Chris Lattner [Thu, 17 Feb 2011 07:39:24 +0000 (07:39 +0000)]
Step #1/N of implementing support for __label__: split labels into
LabelDecl and LabelStmt.  There is a 1-1 correspondence between the
two, but this simplifies a bunch of code by itself.  This is because
labels are the only place where we previously had references to random
other statements, causing grief for AST serialization and other stuff.

This does cause one regression (attr(unused) doesn't silence unused
label warnings) which I'll address next.

This does fix some minor bugs:
1. "The only valid attribute " diagnostic was capitalized.
2. Various diagnostics printed as ''labelname'' instead of 'labelname'
3. This reduces duplication of label checking between functions and blocks.

Review appreciated, particularly for the cindex and template bits.

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

13 years agoDevirtualize Decl::getBody() and Decl::hasBody().
Douglas Gregor [Thu, 17 Feb 2011 07:13:24 +0000 (07:13 +0000)]
Devirtualize Decl::getBody() and Decl::hasBody().

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

13 years agoDe-virtualize Decl::isOutOfLine().
Douglas Gregor [Thu, 17 Feb 2011 07:02:32 +0000 (07:02 +0000)]
De-virtualize Decl::isOutOfLine().

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

13 years agoWhen printing a qualified type, look through a substituted template
Douglas Gregor [Thu, 17 Feb 2011 06:52:25 +0000 (06:52 +0000)]
When printing a qualified type, look through a substituted template
parameter type to see what's behind it, so that we don't end up
printing silly things like "float const *" when "const float *" would
make more sense. Also, replace the pile of "isa" tests with a simple
switch enumerating all of the cases, making a few more obvious cases
use prefix qualifiers.

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

13 years agosimplify a bit.
Chris Lattner [Thu, 17 Feb 2011 05:38:27 +0000 (05:38 +0000)]
simplify a bit.

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

13 years agotidy up
Chris Lattner [Thu, 17 Feb 2011 05:19:40 +0000 (05:19 +0000)]
tidy up

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

13 years agoImprove parser recovery in "for" statements, from Richard Smith!
Douglas Gregor [Thu, 17 Feb 2011 03:38:46 +0000 (03:38 +0000)]
Improve parser recovery in "for" statements, from Richard Smith!

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

13 years agoI will not hold on to temporary StringRefs.
Douglas Gregor [Thu, 17 Feb 2011 03:19:26 +0000 (03:19 +0000)]
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.

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

13 years agoWhen Parser::ParseExpressionList isn't given a completer, fall back to
Douglas Gregor [Thu, 17 Feb 2011 03:09:23 +0000 (03:09 +0000)]
When Parser::ParseExpressionList isn't given a completer, fall back to
normal "expression" completion. Fixes the most annoying
code-completion bug I've found.

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

13 years agoFix PR9025 and add a diagnostic (and sometimes a fixit) for an overloaded
Matt Beaumont-Gay [Thu, 17 Feb 2011 02:54:17 +0000 (02:54 +0000)]
Fix PR9025 and add a diagnostic (and sometimes a fixit) for an overloaded
function name used as the base of a member expression. Early feedback from
Chandler Carruth, and code review from Nick Lewycky.

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

13 years agoBump up IdentifierInfo::ObjCOrBuiltinID to use 11 bits instead of 10. Fixes PR 9231.
Ted Kremenek [Thu, 17 Feb 2011 02:43:00 +0000 (02:43 +0000)]
Bump up IdentifierInfo::ObjCOrBuiltinID to use 11 bits instead of 10.  Fixes PR 9231.

Apparently we can blow out the number of builtin IDs on FreeBSD with only 10 bits.

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

13 years agoBegin overhaul of scan-build/ccc-analyzer's handling of checker options.
Ted Kremenek [Thu, 17 Feb 2011 02:28:30 +0000 (02:28 +0000)]
Begin overhaul of scan-build/ccc-analyzer's handling of checker options.

We now rely on 'clang --analyze' to provide the default set of checkers.  We're
still working on the new '-analyzer-checker <checker>' interface, and once
that's ready we'll wire it up to scan-build.

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

13 years agoDisable default synthesized properties until we can properly re-evaluate the feature.
Ted Kremenek [Thu, 17 Feb 2011 02:17:56 +0000 (02:17 +0000)]
Disable default synthesized properties until we can properly re-evaluate the feature.

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

13 years agofix clang -MM output to escape spaces in filenames. This seems to be
Chris Lattner [Thu, 17 Feb 2011 02:14:49 +0000 (02:14 +0000)]
fix clang -MM output to escape spaces in filenames.  This seems to be
the only character that GCC escapes.  PR9224.

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

13 years agoupdate this test now that reassociate isn't stripping nsw's pointlessly.
Chris Lattner [Thu, 17 Feb 2011 02:02:42 +0000 (02:02 +0000)]
update this test now that reassociate isn't stripping nsw's pointlessly.

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

13 years agoConvert MaxFieldAlignment to CharUnits from bits. No change in functionality
Ken Dyck [Thu, 17 Feb 2011 01:49:42 +0000 (01:49 +0000)]
Convert MaxFieldAlignment to CharUnits from bits. No change in functionality
intended.

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

13 years agoImprove diagnostics when property names an object type of
Fariborz Jahanian [Thu, 17 Feb 2011 01:26:14 +0000 (01:26 +0000)]
Improve diagnostics when property names an object type of
a forward class. // rdar://8851803

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

13 years agoImplement code completion results for the Objective-C Key-Value Coding
Douglas Gregor [Thu, 17 Feb 2011 00:22:45 +0000 (00:22 +0000)]
Implement code completion results for the Objective-C Key-Value Coding
(KVC) and Key-Value Observing (KVO) protocols.

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

13 years agoEnsure that the NRVO flag has some block to insert into. Fixes PR9178!
Nick Lewycky [Wed, 16 Feb 2011 23:59:08 +0000 (23:59 +0000)]
Ensure that the NRVO flag has some block to insert into. Fixes PR9178!

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

13 years agoFix assertion failure in -Warray-bounds on template parameters used as arrays.
Ted Kremenek [Wed, 16 Feb 2011 23:39:09 +0000 (23:39 +0000)]
Fix assertion failure in -Warray-bounds on template parameters used as arrays.

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

13 years agoBlock rewriting bug. Don't take address of captured
Fariborz Jahanian [Wed, 16 Feb 2011 22:37:10 +0000 (22:37 +0000)]
Block rewriting bug. Don't take address of captured
byref variables again when passing them to inner blocks.
// rdar://9006279

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

13 years agoPlacate Doug and change capitalization of diagnostic note.
Ted Kremenek [Wed, 16 Feb 2011 22:08:28 +0000 (22:08 +0000)]
Placate Doug and change capitalization of diagnostic note.

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

13 years agoMakes most methods in SVals.h conform to the naming guide. Reviewed
Zhanyong Wan [Wed, 16 Feb 2011 21:13:32 +0000 (21:13 +0000)]
Makes most methods in SVals.h conform to the naming guide.  Reviewed
by kremenek.

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

13 years ago3000 Sema diagnostics should be enough for anyone.
Chandler Carruth [Wed, 16 Feb 2011 19:41:58 +0000 (19:41 +0000)]
3000 Sema diagnostics should be enough for anyone.

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

13 years agoFix a thinko with llvm::Optional, which is clearly the most dangerous class template...
Douglas Gregor [Wed, 16 Feb 2011 19:09:24 +0000 (19:09 +0000)]
Fix a thinko with llvm::Optional, which is clearly the most dangerous class template in the universe

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

13 years agoTeach the CXCodeCompleteResults results structure, which stores
Douglas Gregor [Wed, 16 Feb 2011 19:08:06 +0000 (19:08 +0000)]
Teach the CXCodeCompleteResults results structure, which stores
code-completion results accessed via libclang, to extend the lifetime
of the allocator used for cached global code-completion results at
least until these completion results are destroyed. Fixes
<rdar://problem/8997369>.

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

13 years agoIf preprocessed token introduced empty filename then use main translation unit's...
Devang Patel [Wed, 16 Feb 2011 18:40:36 +0000 (18:40 +0000)]
If preprocessed token introduced empty filename then use main translation unit's filename for debug info entries.

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

13 years agoImprove the invalidation logic for the cache of global code
Douglas Gregor [Wed, 16 Feb 2011 18:16:54 +0000 (18:16 +0000)]
Improve the invalidation logic for the cache of global code
completions. We now compute a hash of the names of all top-level
declarations and macro definitions, and invalidate the cache when the
hash value changes.

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

13 years agoTeach PPChainedCallbacks to forward the InclusionDirective() callback.
Douglas Gregor [Wed, 16 Feb 2011 18:15:35 +0000 (18:15 +0000)]
Teach PPChainedCallbacks to forward the InclusionDirective() callback.

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

13 years agoWarning -> ExtWarn
Argyrios Kyrtzidis [Wed, 16 Feb 2011 16:23:31 +0000 (16:23 +0000)]
Warning -> ExtWarn

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

13 years agoRemove this FIXME; clear up an unused variable; style.
John McCall [Wed, 16 Feb 2011 08:39:19 +0000 (08:39 +0000)]
Remove this FIXME;  clear up an unused variable;  style.

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

13 years agoSave a copy expression for non-trivial copy constructions of catch variables.
John McCall [Wed, 16 Feb 2011 08:02:54 +0000 (08:02 +0000)]
Save a copy expression for non-trivial copy constructions of catch variables.

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

13 years agoAdds a CMake target for the Basic lib's unit tests. Reviewed by
Zhanyong Wan [Wed, 16 Feb 2011 05:45:20 +0000 (05:45 +0000)]
Adds a CMake target for the Basic lib's unit tests.  Reviewed by
jyasskin and chapuni.

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

13 years agoImproves CMakeLists.txt for Clang's unit tests: make "linked
Zhanyong Wan [Wed, 16 Feb 2011 05:19:17 +0000 (05:19 +0000)]
Improves CMakeLists.txt for Clang's unit tests: make "linked
components" and "used libs" arguments of add_clang_unittest().
Reviewed by jyasskin and chapuni.

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

13 years agoTweak -Warray-bounds diagnostics based on feedback from Chandler.
Ted Kremenek [Wed, 16 Feb 2011 04:01:44 +0000 (04:01 +0000)]
Tweak -Warray-bounds diagnostics based on feedback from Chandler.

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

13 years agoCMake: Tweak for Visual Studio 10 quirk at clang-standalone build.
NAKAMURA Takumi [Wed, 16 Feb 2011 03:07:15 +0000 (03:07 +0000)]
CMake: Tweak for Visual Studio 10 quirk at clang-standalone build.

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

13 years agotest/CMakeLists.txt: Don't depend on llvm toolchain at clang-standalone build.
NAKAMURA Takumi [Wed, 16 Feb 2011 03:07:10 +0000 (03:07 +0000)]
test/CMakeLists.txt: Don't depend on llvm toolchain at clang-standalone build.

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

13 years agoRevert r125642. This broke the build? It should be a no-op.
Nick Lewycky [Wed, 16 Feb 2011 02:34:28 +0000 (02:34 +0000)]
Revert r125642. This broke the build? It should be a no-op.

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

13 years agotest/PCH/headersearch.cpp fails on Win32. Not trivial to fix.
Francois Pichet [Wed, 16 Feb 2011 02:29:43 +0000 (02:29 +0000)]
test/PCH/headersearch.cpp fails on Win32. Not trivial to fix.

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

13 years agoConvert the UnpackedAlignment field to CharUnits from bits. No change in
Ken Dyck [Wed, 16 Feb 2011 02:11:31 +0000 (02:11 +0000)]
Convert the UnpackedAlignment field to CharUnits from bits. No change in
functionality intended.

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

13 years agoDon't use "../foo" to return to the current directory.
Nick Lewycky [Wed, 16 Feb 2011 02:10:49 +0000 (02:10 +0000)]
Don't use "../foo" to return to the current directory.

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

13 years agoConvert Alignment member to CharUnits from bits. No change in functionality
Ken Dyck [Wed, 16 Feb 2011 02:05:21 +0000 (02:05 +0000)]
Convert Alignment member to CharUnits from bits. No change in functionality
intended.

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

13 years agoAdd trivial buffer overflow checking in Sema.
Ted Kremenek [Wed, 16 Feb 2011 01:57:07 +0000 (01:57 +0000)]
Add trivial buffer overflow checking in Sema.

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

13 years agoConvert NonVirtualSize to CharUnits from bits. No change in functionality
Ken Dyck [Wed, 16 Feb 2011 01:52:01 +0000 (01:52 +0000)]
Convert NonVirtualSize to CharUnits from bits. No change in functionality
intended.

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

13 years agoConvert NonVirtualAlignment to CharUnits. No change in functionality
Ken Dyck [Wed, 16 Feb 2011 01:43:15 +0000 (01:43 +0000)]
Convert NonVirtualAlignment to CharUnits. No change in functionality
intended.

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

13 years ago[analyzer] AnalyzerFrontend is dependent on AnalyzerCheckers.
Argyrios Kyrtzidis [Wed, 16 Feb 2011 01:40:55 +0000 (01:40 +0000)]
[analyzer] AnalyzerFrontend is dependent on AnalyzerCheckers.

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

13 years ago[analyzer] Use the new registration mechanism on the apple checkers:
Argyrios Kyrtzidis [Wed, 16 Feb 2011 01:40:52 +0000 (01:40 +0000)]
[analyzer] Use the new registration mechanism on the apple checkers:

  NilArgChecker
  CFNumberCreateChecker
  NSAutoreleasePoolChecker
  CFRetainReleaseChecker
  ClassReleaseChecker

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

13 years agoWhen searching for visible declarations (e.g., for code completion),
Douglas Gregor [Wed, 16 Feb 2011 01:39:26 +0000 (01:39 +0000)]
When searching for visible declarations (e.g., for code completion),
be sure to look at all of the Objective-C class declarations within a
@class. Fixes <rdar://problem/8876207>.

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

13 years agoSimplify test to check an aggregate argument that has non trivial constructor or...
Devang Patel [Wed, 16 Feb 2011 01:11:51 +0000 (01:11 +0000)]
Simplify test to check an aggregate argument that has non trivial constructor or destructor.
This patch rewrites r125142.

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

13 years agoWhen trying to provide a code completion item for a call to "super" in
Douglas Gregor [Wed, 16 Feb 2011 00:51:18 +0000 (00:51 +0000)]
When trying to provide a code completion item for a call to "super" in
Objective-C, also look in the categories and class extensions of our
superclasses. Fixes <rdar://problem/8853540>.

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

13 years agoDon't call objc_read_weak as part of emitting a block literal.
John McCall [Wed, 16 Feb 2011 00:49:34 +0000 (00:49 +0000)]
Don't call objc_read_weak as part of emitting a block literal.
Nobody ever gave me a clear reason for why we were doing this, and
now it's apparently causing serious problems, so if *not* having this
causes problems, we get to solve them the right way this time.

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

13 years agoCheck for deprecated implementation unconditionally.
Fariborz Jahanian [Wed, 16 Feb 2011 00:30:31 +0000 (00:30 +0000)]
Check for deprecated implementation unconditionally.
Warning and its note will be ignored in default case.

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

13 years agoFix typo (per Chris's comment).
Fariborz Jahanian [Wed, 16 Feb 2011 00:14:11 +0000 (00:14 +0000)]
Fix typo (per Chris's comment).

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

13 years agoWarn for missing terminating " or ' instead of error for gcc compatibility. Fixed...
Argyrios Kyrtzidis [Tue, 15 Feb 2011 23:45:31 +0000 (23:45 +0000)]
Warn for missing terminating " or ' instead of error for gcc compatibility. Fixed rdar://8914293.

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

13 years agoOnly c++ class arguments with non trivial constructor or destructor needs a reference.
Devang Patel [Tue, 15 Feb 2011 23:36:28 +0000 (23:36 +0000)]
Only c++ class arguments with non trivial constructor or destructor needs a reference.
C struct arguments do not need this adjustment.
This fixes 7 failures in callfuncs.exp from gdb testsuite.

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

13 years ago[analyzer] Use the new registration mechanism on some of the experimental internal...
Argyrios Kyrtzidis [Tue, 15 Feb 2011 22:55:20 +0000 (22:55 +0000)]
[analyzer] Use the new registration mechanism on some of the experimental internal checkers:

  CastToStructChecker
  FixedAddressChecker
  PointerArithChecker
  PointerSubChecker

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

13 years ago[analyzer] Use the new registration mechanism on the IdempotentOperationChecker.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 22:55:14 +0000 (22:55 +0000)]
[analyzer] Use the new registration mechanism on the IdempotentOperationChecker.

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

13 years agoHandle delayed access in local declarations. PR9229.
John McCall [Tue, 15 Feb 2011 22:51:53 +0000 (22:51 +0000)]
Handle delayed access in local declarations.  PR9229.

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

13 years agoTeach code completion to cope with block types written without a
Douglas Gregor [Tue, 15 Feb 2011 22:37:09 +0000 (22:37 +0000)]
Teach code completion to cope with block types written without a
prototype, e.g., ^() rather than ^(void). Fixes
<rdar://problem/8875712>.

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

13 years agoAdd a hack to avoid adding '\01' to asm names when possible. It would be
Rafael Espindola [Tue, 15 Feb 2011 22:23:51 +0000 (22:23 +0000)]
Add a hack to avoid adding '\01' to asm names when possible. It would be
better for clang to always compute the right name, but for now this hack
fixes PR9177 and lets us build firefox with LTO :-)

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

13 years agoRefactor CGRecordLayoutBuilder to use CharUnits more consistently.
John McCall [Tue, 15 Feb 2011 22:21:29 +0000 (22:21 +0000)]
Refactor CGRecordLayoutBuilder to use CharUnits more consistently.

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

13 years agoImplement a special code-completion pattern for "IBAction". Fixes
Douglas Gregor [Tue, 15 Feb 2011 22:19:42 +0000 (22:19 +0000)]
Implement a special code-completion pattern for "IBAction". Fixes
<rdar://problem/8767704>.

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

13 years agoFix the distro name.
Rafael Espindola [Tue, 15 Feb 2011 21:44:06 +0000 (21:44 +0000)]
Fix the distro name.

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

13 years agoMoves FileManagerTest.cpp to unittests/Basic such that the unit test
Zhanyong Wan [Tue, 15 Feb 2011 21:30:27 +0000 (21:30 +0000)]
Moves FileManagerTest.cpp to unittests/Basic such that the unit test
directory structure matches the library structure.  Reviewed by jyasskin.

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

13 years ago[analyzer] Remove ObjCSelfInitCheck from AnalyzerOptions.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 21:25:07 +0000 (21:25 +0000)]
[analyzer] Remove ObjCSelfInitCheck from AnalyzerOptions.

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

13 years ago[analyzer] Use the new registration mechanism on some of the experimental checks...
Argyrios Kyrtzidis [Tue, 15 Feb 2011 21:25:03 +0000 (21:25 +0000)]
[analyzer] Use the new registration mechanism on some of the experimental checks. These are:

   CStringChecker
   ChrootChecker
   MallocChecker
   PthreadLockChecker
   StreamChecker
   UnreachableCodeChecker

MallocChecker creates implicit dependencies between checkers and needs to be handled differently.

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

13 years agoFix include paths on 32 bit ubuntu 10.10.
Rafael Espindola [Tue, 15 Feb 2011 21:16:43 +0000 (21:16 +0000)]
Fix include paths on 32 bit ubuntu 10.10.
Original patch by Jonas Bülow.

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

13 years agoWhen code-completing within a list of declaration specifiers,
Douglas Gregor [Tue, 15 Feb 2011 20:33:25 +0000 (20:33 +0000)]
When code-completing within a list of declaration specifiers,
separately handle the case of a local declaration-specifier list,
including all types in the set of options. Fixes
<rdar://problem/8790735> and <rdar://problem/8662831>.

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

13 years agoOpenCL: standardise naming of test cases
Peter Collingbourne [Tue, 15 Feb 2011 19:46:41 +0000 (19:46 +0000)]
OpenCL: standardise naming of test cases

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

13 years agoSerialization/deserialization support for floating point #pragma
Peter Collingbourne [Tue, 15 Feb 2011 19:46:30 +0000 (19:46 +0000)]
Serialization/deserialization support for floating point #pragma
options, enabled OpenCL extensions and default FP_CONTRACT setting.

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

13 years agoOpenCL: semantic analysis support for cl_khr_fp64 extension
Peter Collingbourne [Tue, 15 Feb 2011 19:46:23 +0000 (19:46 +0000)]
OpenCL: semantic analysis support for cl_khr_fp64 extension

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

13 years agoWhen we encounter an Objective-C class name in an expression, followed
Douglas Gregor [Tue, 15 Feb 2011 19:17:31 +0000 (19:17 +0000)]
When we encounter an Objective-C class name in an expression, followed
by the code completion token, treat this as a class message send where
the opening square bracket is missing. Fixes <rdar://problem/6970911>.

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

13 years agoIn -fapple-kext mode, global object construction code
Fariborz Jahanian [Tue, 15 Feb 2011 18:54:46 +0000 (18:54 +0000)]
In -fapple-kext mode, global object construction code
ends up in the text segment. // rdar://8825235.

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

13 years agoEmit in-class member function definitions that are marked
Douglas Gregor [Tue, 15 Feb 2011 18:11:42 +0000 (18:11 +0000)]
Emit in-class member function definitions that are marked
"used". Fixes <rdar://problem/8684363>.

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

13 years agoAllow resolving headers from a PCH even after headers+PCH were moved to another path.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 17:54:22 +0000 (17:54 +0000)]
Allow resolving headers from a PCH even after headers+PCH were moved to another path.

Store in PCH the directory that the PCH was originally created in.
If a header file is not found at the path that we expect it to be and the PCH file
was moved from its original location, try to resolve the file by assuming that
header+PCH were moved together and the header is in the same place relative to the PCH.

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

13 years agoRefactoring of code to issue warning on implemented
Fariborz Jahanian [Tue, 15 Feb 2011 17:49:58 +0000 (17:49 +0000)]
Refactoring of code to issue warning on implemented
deprecated class and methods in objective-c.

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

13 years agoAdd missing CMake dependency
Douglas Gregor [Tue, 15 Feb 2011 17:09:56 +0000 (17:09 +0000)]
Add missing CMake dependency

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

13 years agoFix the clang-wpa example.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 16:54:12 +0000 (16:54 +0000)]
Fix the clang-wpa example.

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

13 years agoInitialize InlineCall in AnalyzerOptions.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 16:54:07 +0000 (16:54 +0000)]
Initialize InlineCall in AnalyzerOptions.

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

13 years agoAssorted cleanup:
John McCall [Tue, 15 Feb 2011 09:22:45 +0000 (09:22 +0000)]
Assorted cleanup:
  - Have CGM precompute a number of commonly-used types
  - Have CGF copy that during initialization instead of recomputing them
  - Use TBAA info when initializing a parameter variable
  - Refactor the scalar ++/-- code

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

13 years agoAdd CMake support to the clang unittests.
Jeffrey Yasskin [Tue, 15 Feb 2011 07:54:28 +0000 (07:54 +0000)]
Add CMake support to the clang unittests.

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

13 years ago[analyzer] Reflect changes for tablegen'ing the checkers.
Argyrios Kyrtzidis [Tue, 15 Feb 2011 07:42:38 +0000 (07:42 +0000)]
[analyzer] Reflect changes for tablegen'ing the checkers.

-Update tablegen files for checkers, use the tablegen class name for the checker class name.
-Update ClangSACheckersProvider to not look into hidden checker packages.

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

13 years ago[analyzer] Use the new registration mechanism on some of the internal checks. These...
Argyrios Kyrtzidis [Tue, 15 Feb 2011 07:42:33 +0000 (07:42 +0000)]
[analyzer] Use the new registration mechanism on some of the internal checks. These are:

StackAddrLeakChecker
ObjCAtSyncChecker
UnixAPIChecker
MacOSXAPIChecker

The rest have/create implicit dependencies between checkers and need to be handled differently.

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

13 years agoReturn a declaration to the parser when creating a field in C++ so that
John McCall [Tue, 15 Feb 2011 07:12:36 +0000 (07:12 +0000)]
Return a declaration to the parser when creating a field in C++ so that
the parser will complete the declarator with a valid decl and thus trigger
delayed diagnostics for it.  It certainly looks like we were intentionally
returning null here, but I couldn't find any good reason for it, and there
wasn't a comment, so farewell to all that.

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

13 years agoPerform zero-initialization of virtual base classes when emitting
John McCall [Tue, 15 Feb 2011 06:40:56 +0000 (06:40 +0000)]
Perform zero-initialization of virtual base classes when emitting
a zero constant for a complete class.  rdar://problem/8424975

To make this happen, track the field indexes for virtual bases
in the complete object.  I'm curious whether we might be better
off making CGRecordLayoutBuilder *much* more reliant on
ASTRecordLayout;  we're currently duplicating an awful lot of the ABI
layout logic.

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

13 years agoFix memory leak in CFGBuilder resulting from tracking scope information using SmallVe...
Ted Kremenek [Tue, 15 Feb 2011 02:47:45 +0000 (02:47 +0000)]
Fix memory leak in CFGBuilder resulting from tracking scope information using SmallVectors.

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

13 years agoConvert RecordLayout::Alignment to CharUnits from bit units. No change in
Ken Dyck [Tue, 15 Feb 2011 02:32:40 +0000 (02:32 +0000)]
Convert RecordLayout::Alignment to CharUnits from bit units. No change in
functionality intended.

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

13 years agoIdempotentOperationChecker: don't repeatedly recompute block reachability.
Ted Kremenek [Tue, 15 Feb 2011 02:20:03 +0000 (02:20 +0000)]
IdempotentOperationChecker: don't repeatedly recompute block reachability.

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

13 years agoWarn if method for a deprecated method is implemented.
Fariborz Jahanian [Tue, 15 Feb 2011 00:59:30 +0000 (00:59 +0000)]
Warn if method for a deprecated method is implemented.
Warn if class for a deprecated class is implemented.
Warn if category for a deprecated class is implemented.
All under control of -Wdeprecated-implementations.
// rdar://8973810.

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

13 years agoupdate for ConstantVector API change.
Chris Lattner [Tue, 15 Feb 2011 00:14:06 +0000 (00:14 +0000)]
update for ConstantVector API change.

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

13 years agoPut "incomplete implementation" warning under a flag.
Ted Kremenek [Mon, 14 Feb 2011 23:59:16 +0000 (23:59 +0000)]
Put "incomplete implementation" warning under a flag.

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