]> granicus.if.org Git - clang/log
clang
16 years agoFix initialization bug.
Ted Kremenek [Wed, 2 Apr 2008 20:44:27 +0000 (20:44 +0000)]
Fix initialization bug.

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

16 years agoEmbed BUGLINE, BUGFILE, BUGPATHLENGTH in the emitted HTML file.
Ted Kremenek [Wed, 2 Apr 2008 20:44:16 +0000 (20:44 +0000)]
Embed BUGLINE, BUGFILE, BUGPATHLENGTH in the emitted HTML file.

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

16 years agoMade bug index tables sortable.
Ted Kremenek [Wed, 2 Apr 2008 20:43:36 +0000 (20:43 +0000)]
Made bug index tables sortable.
Added line number, file information, path length, for each bug report.

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

16 years agoAdded "back()" method to PathDiagnostic to access the last piece in a path.
Ted Kremenek [Wed, 2 Apr 2008 20:35:01 +0000 (20:35 +0000)]
Added "back()" method to PathDiagnostic to access the last piece in a path.

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

16 years agoInitial work on CSS in generated index.html.
Ted Kremenek [Wed, 2 Apr 2008 18:42:49 +0000 (18:42 +0000)]
Initial work on CSS in generated index.html.
Added "-V/--view" option to view index.html after it has been generated.

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

16 years agoChange ObjCInterfaceDecl to inherit from NamedDecl (not TypeDecl). While ObjCInterfac...
Steve Naroff [Wed, 2 Apr 2008 18:30:49 +0000 (18:30 +0000)]
Change ObjCInterfaceDecl to inherit from NamedDecl (not TypeDecl). While ObjCInterfaceDecl is arguably a TypeDecl, it isn't a ScopedDecl. Since TypeDecl's are scoped, it makes sense to simply treat them as NamedDecl's. I could have fiddled a bit more with the hierarchy (in terms of creating a non-scoped TypeDecl), however this probably isn't worth the effort.

I also finished unifying access to scope decl change by converting Sema::getObjCInterfaceDecl() to use Sema::LookupDecl(). This is much cleaner now:-)

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

16 years agoInitial support for generating index.html file.
Ted Kremenek [Wed, 2 Apr 2008 18:03:36 +0000 (18:03 +0000)]
Initial support for generating index.html file.

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

16 years agoPut "BUGDESC" comment tag on its own line.
Ted Kremenek [Wed, 2 Apr 2008 18:03:20 +0000 (18:03 +0000)]
Put "BUGDESC" comment tag on its own line.

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

16 years agoShorted bug-description.
Ted Kremenek [Wed, 2 Apr 2008 18:02:54 +0000 (18:02 +0000)]
Shorted bug-description.

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

16 years agosimplify some code by using PointerLikeType.
Chris Lattner [Wed, 2 Apr 2008 17:45:06 +0000 (17:45 +0000)]
simplify some code by using PointerLikeType.

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

16 years agoadd a common base class "PointerLikeType" for PointerType and ReferenceType,
Chris Lattner [Wed, 2 Apr 2008 17:35:06 +0000 (17:35 +0000)]
add a common base class "PointerLikeType" for PointerType and ReferenceType,
allowing them to be treated the same in some contexts.  A suggestion for a
better name is welcome :)

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

16 years agoproperly handle array decay in objc message exprs.
Chris Lattner [Wed, 2 Apr 2008 17:17:33 +0000 (17:17 +0000)]
properly handle array decay in objc message exprs.

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

16 years agoimprove error to be something end users will actually understand :)
Chris Lattner [Wed, 2 Apr 2008 17:15:17 +0000 (17:15 +0000)]
improve error to be something end users will actually understand :)

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

16 years agoAdded path-sensitive null dereference test case.
Ted Kremenek [Wed, 2 Apr 2008 16:54:39 +0000 (16:54 +0000)]
Added path-sensitive null dereference test case.

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

16 years agoMore wording cleanups in --help text.
Ted Kremenek [Wed, 2 Apr 2008 16:47:27 +0000 (16:47 +0000)]
More wording cleanups in --help text.

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

16 years agoMore wording fixes.
Ted Kremenek [Wed, 2 Apr 2008 16:41:25 +0000 (16:41 +0000)]
More wording fixes.

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

16 years agoAdded error message for unrecognized options.
Ted Kremenek [Wed, 2 Apr 2008 16:35:01 +0000 (16:35 +0000)]
Added error message for unrecognized options.

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

16 years agoWording cleanups.
Ted Kremenek [Wed, 2 Apr 2008 16:31:58 +0000 (16:31 +0000)]
Wording cleanups.

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

16 years agoImplemented "-k" support.
Ted Kremenek [Wed, 2 Apr 2008 16:04:51 +0000 (16:04 +0000)]
Implemented "-k" support.

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

16 years agoDo equality testing, not regex, when the build command is gcc. This matches
Ted Kremenek [Wed, 2 Apr 2008 15:34:12 +0000 (15:34 +0000)]
Do equality testing, not regex, when the build command is gcc.  This matches
better with what compiler invocations that ccc-analyzer actually intercepts.

Fixes suggested by Sam Bishop!

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

16 years agoTwo changes to Sema::LookupDecl() interface.
Steve Naroff [Wed, 2 Apr 2008 14:35:35 +0000 (14:35 +0000)]
Two changes to Sema::LookupDecl() interface.
(1) Remove IdLoc (it's never used).
(2) Add a bool to enable/disable lazy builtin creaation (defaults to true).

This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit.

To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness.

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

16 years agoBeginning of some cleanups; start generating path diagnostics using objects
Ted Kremenek [Wed, 2 Apr 2008 07:05:46 +0000 (07:05 +0000)]
Beginning of some cleanups; start generating path diagnostics using objects
that describe a bug.

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

16 years agoMinor wording changes.
Ted Kremenek [Wed, 2 Apr 2008 07:05:07 +0000 (07:05 +0000)]
Minor wording changes.

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

16 years agoEmbed "DESC" tag in HTML reports.
Ted Kremenek [Wed, 2 Apr 2008 07:04:46 +0000 (07:04 +0000)]
Embed "DESC" tag in HTML reports.

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

16 years agoAdded "description" field to PathDiagnostic.
Ted Kremenek [Wed, 2 Apr 2008 07:03:43 +0000 (07:03 +0000)]
Added "description" field to PathDiagnostic.

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

16 years agoVarious parts of the standard require something to be an "incomplete or
Chris Lattner [Wed, 2 Apr 2008 06:59:01 +0000 (06:59 +0000)]
Various parts of the standard require something to be an "incomplete or
object type".  Add a predicate that checks exactly this, as it is equivalent
to checking ot see if the type is *not* a function type, which is faster
to check.

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

16 years ago1) Enforce C99 6.7.3p2: "Types other than pointer types derived from
Chris Lattner [Wed, 2 Apr 2008 06:50:17 +0000 (06:50 +0000)]
1) Enforce C99 6.7.3p2: "Types other than pointer types derived from
object or incomplete types shall not be restrict-qualified."

2) Warn about qualifiers on function types: C99 6.7.3p8: "If the
specification of a function type includes any type qualifiers, the
behavior is undefined."

3) Implement restrict on C++ references.

4) fix some locations for various C++ reference diagnostics.

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

16 years agoAdd a citation.
Chris Lattner [Wed, 2 Apr 2008 06:06:35 +0000 (06:06 +0000)]
Add a citation.

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

16 years agoFix several bugs in array -> pointer decomposition.
Chris Lattner [Wed, 2 Apr 2008 05:18:44 +0000 (05:18 +0000)]
Fix several bugs in array -> pointer decomposition.

First, we got several CVR propagation cases wrong, which Eli pointed
out in PR2039.

Second, we didn't propagate address space qualifiers correctly, leading
to incorrect lowering of code in CodeGen/address-space.c.

Third, we didn't uniformly propagate the specifier in the array to the
pointer ("int[restrict 4]" -> "int *restrict").

This adds an ASTContext::getArrayDecayedType member that handles the
non-trivial logic for this seemingly simple operation.

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

16 years agoAdded initial hacked support for display path diagnostics with
Ted Kremenek [Wed, 2 Apr 2008 05:15:22 +0000 (05:15 +0000)]
Added initial hacked support for display path diagnostics with
GRSimpleVals warnings.  Cleaning up, but now we get multiple bubbles (branches are annotated).

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

16 years agoFix copy-paste error.
Ted Kremenek [Wed, 2 Apr 2008 05:13:10 +0000 (05:13 +0000)]
Fix copy-paste error.

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

16 years agoremove blank line.
Chris Lattner [Wed, 2 Apr 2008 05:09:38 +0000 (05:09 +0000)]
remove blank line.

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

16 years agoprint cvr qualifiers on simplified typedefs
Chris Lattner [Wed, 2 Apr 2008 05:06:23 +0000 (05:06 +0000)]
print cvr qualifiers on simplified typedefs

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

16 years agoAdded special handling when the build command is "gcc", "cc", or "llvm-gcc";
Ted Kremenek [Wed, 2 Apr 2008 04:43:42 +0000 (04:43 +0000)]
Added special handling when the build command is "gcc", "cc", or "llvm-gcc";
in these cases we directly call ccc-analyzer.

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

16 years agorename some variables, fix 80 col violation. No
Chris Lattner [Wed, 2 Apr 2008 04:24:33 +0000 (04:24 +0000)]
rename some variables, fix 80 col violation.  No
functionality change.

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

16 years agoa bunch of random cleanups
Sam Bishop [Wed, 2 Apr 2008 03:35:43 +0000 (03:35 +0000)]
a bunch of random cleanups

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

16 years agoFix PR2017 and silence some bogus errors.
Chris Lattner [Wed, 2 Apr 2008 01:05:10 +0000 (01:05 +0000)]
Fix PR2017 and silence some bogus errors.

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

16 years agoFix a comment typo and add a couple suggestions from Chris.
Steve Naroff [Wed, 2 Apr 2008 00:39:51 +0000 (00:39 +0000)]
Fix a comment typo and add a couple suggestions from Chris.

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

16 years agoFairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass (to...
Steve Naroff [Tue, 1 Apr 2008 23:04:06 +0000 (23:04 +0000)]
Fairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass (to inherit from NamedDecl, instead of ScopedDecl).

- Added a DenseMap to associate an IdentifierInfo with the ObjCCompatibleAliasDecl.
- Renamed LookupScopedDecl->LookupDecl and changed it's return type to Decl. Also added lookup for ObjCCompatibleAliasDecl's.
- Removed Sema::LookupInterfaceDecl(). Converted clients to used LookupDecl().
- Some minor indentation changes.

Will deal with ObjCInterfaceDecl and getObjCInterfaceDecl() in a separate commit...

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

16 years agoPatch by Argiris Kirtzidis: Fix a dangling pointer error!
Ted Kremenek [Tue, 1 Apr 2008 22:35:58 +0000 (22:35 +0000)]
Patch by Argiris Kirtzidis:  Fix a dangling pointer error!

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

16 years agoMinor cleanups.
Ted Kremenek [Tue, 1 Apr 2008 21:36:28 +0000 (21:36 +0000)]
Minor cleanups.

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

16 years agoAdded help text for scan-build.
Ted Kremenek [Tue, 1 Apr 2008 21:22:03 +0000 (21:22 +0000)]
Added help text for scan-build.

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

16 years agoInitial checking of 'scan-build' script, a script used to wrap builds and
Ted Kremenek [Tue, 1 Apr 2008 20:47:38 +0000 (20:47 +0000)]
Initial checking of 'scan-build' script, a script used to wrap builds and
interpose calls to gcc with calls to the analyzer.

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

16 years agoUpdate to match simplified llvm MemoryBuffer interfaces for files.
Chris Lattner [Tue, 1 Apr 2008 18:04:30 +0000 (18:04 +0000)]
Update to match simplified llvm MemoryBuffer interfaces for files.

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

16 years agoprune dead #includes
Chris Lattner [Tue, 1 Apr 2008 06:08:11 +0000 (06:08 +0000)]
prune dead #includes

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

16 years agoMemoryBuffer::getFile got smarter, obviating the need for readfilefast.
Chris Lattner [Tue, 1 Apr 2008 06:06:37 +0000 (06:06 +0000)]
MemoryBuffer::getFile got smarter, obviating the need for readfilefast.
The new MemoryBuffer doesn't "leak" file descriptors and handles the
small file case efficiently.

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

16 years agoEmbed linkable IDs in message bubbles.
Ted Kremenek [Mon, 31 Mar 2008 23:30:12 +0000 (23:30 +0000)]
Embed linkable IDs in message bubbles.

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

16 years agoimprove comma consistency, yes I'm anal
Chris Lattner [Mon, 31 Mar 2008 23:25:25 +0000 (23:25 +0000)]
improve comma consistency, yes I'm anal

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

16 years agoBetter handling for tabs with message bubbles.
Ted Kremenek [Mon, 31 Mar 2008 23:14:05 +0000 (23:14 +0000)]
Better handling for tabs with message bubbles.

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

16 years agoWhen emitting HTML messages, take into account margin fusing due to tabs.
Ted Kremenek [Mon, 31 Mar 2008 21:40:14 +0000 (21:40 +0000)]
When emitting HTML messages, take into account margin fusing due to tabs.

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

16 years agoDo not abort ccc-analyzer script if an HTML directory is not specified.
Ted Kremenek [Mon, 31 Mar 2008 21:20:32 +0000 (21:20 +0000)]
Do not abort ccc-analyzer script if an HTML directory is not specified.

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

16 years agoDo not prepend the keyword "[CHECKER]" to checker messages when using
Ted Kremenek [Mon, 31 Mar 2008 20:42:43 +0000 (20:42 +0000)]
Do not prepend the keyword "[CHECKER]" to checker messages when using
a PathDiagnosticClient.

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

16 years agoHack ReadFileFast() to raise the threshold of memory mapped files (from 4->12 pages).
Steve Naroff [Mon, 31 Mar 2008 18:44:59 +0000 (18:44 +0000)]
Hack ReadFileFast() to raise the threshold of memory mapped files (from 4->12 pages).

This is a temporary solution to avoid running out of file descriptors (which defaults to 256).

Need to benchmark to understand the speed benefit. If the benefit is small, the simple solution is to avoid memory mapping files. If the benefit is significant, more thought is necessary.

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

16 years agoInclude ranges in GRSimpleVals diagnostics.
Ted Kremenek [Mon, 31 Mar 2008 18:44:32 +0000 (18:44 +0000)]
Include ranges in GRSimpleVals diagnostics.

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

16 years agoInlined clang/Analysis/Analyses/GRSimpleVals.h into LocalCheckers.h and removed
Ted Kremenek [Mon, 31 Mar 2008 18:26:32 +0000 (18:26 +0000)]
Inlined clang/Analysis/Analyses/GRSimpleVals.h into LocalCheckers.h and removed
GRSimpleVals.h

Added a PathDiagnosticClient option to the driver functions for the
CFRefCountChecker and the GRSimpleVals analysis. Both analyses now accept a "-o"
argument from the driver that specifies where HTML reports should be dumped.

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

16 years agoThe ccc-analyzer script now interrogates environment variables to determine
Ted Kremenek [Mon, 31 Mar 2008 18:25:05 +0000 (18:25 +0000)]
The ccc-analyzer script now interrogates environment variables to determine
where to dump HTML reports.

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

16 years agoAdded variation of the "Report" method in the class Diagnostic that takes
Ted Kremenek [Mon, 31 Mar 2008 18:23:15 +0000 (18:23 +0000)]
Added variation of the "Report" method in the class Diagnostic that takes
an optional DiagnosticClient argument that differs from the client stored
internally in the Diagnostic object.

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

16 years agoDisable timing diagnostics for GRSimpleVals.
Ted Kremenek [Mon, 31 Mar 2008 16:00:32 +0000 (16:00 +0000)]
Disable timing diagnostics for GRSimpleVals.

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

16 years agoAdded path-sensitive check for return statements that return the address
Ted Kremenek [Mon, 31 Mar 2008 15:02:58 +0000 (15:02 +0000)]
Added path-sensitive check for return statements that return the address
of a stack variable.  This is the path-sensitive version of a check that
is already done during semantic analysis.

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

16 years agorename Decl::CompatibleAlias -> ObjCCompatibleAlias.
Chris Lattner [Mon, 31 Mar 2008 00:36:02 +0000 (00:36 +0000)]
rename Decl::CompatibleAlias -> ObjCCompatibleAlias.

Fix objc ivar lookup.  Ivar lookup should occur between lookup
of method-local values and lookup of globals.  Emulate this with
some logic in the handling of Sema::ActOnIdentifierExpr.

Two todo's left:
 1) sema shouldn't turn a bare reference to an ivar into "self->ivar"
    in the AST.  This is a hack.
 2) The new ScopedDecl::isDefinedOutsideFunctionOrMethod method does
    not correctly handle typedefs and enum constants yet.

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

16 years agosome cleanups on top of David's patch. There are still two
Chris Lattner [Sun, 30 Mar 2008 23:25:33 +0000 (23:25 +0000)]
some cleanups on top of David's patch.  There are still two
remaining open issues I've communicated to him:

1) self can be assigned to, and his patch didn't handle it correctly.
2) CollectObjCIvarTypes is N^2 (because each subclass reprocesses
   all parent class ivars) and flattens classes.  If A derives from B,
   and both have an int, I'd expect to get { {i32}, i32}, not { i32, i32}.

David, please review.

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

16 years agoAdd initial support for objc codegen for methods, ivars, and the
Chris Lattner [Sun, 30 Mar 2008 23:03:07 +0000 (23:03 +0000)]
Add initial support for objc codegen for methods, ivars, and the
etoile runtime, patch by David Chisnall!

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

16 years agoOnly have the rewriter produce a file when there are no errors.
Steve Naroff [Fri, 28 Mar 2008 22:26:09 +0000 (22:26 +0000)]
Only have the rewriter produce a file when there are no errors.

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

16 years agoMake sure Sema::ActOnClassMessage() correctly diagnoses "super".
Steve Naroff [Fri, 28 Mar 2008 21:37:05 +0000 (21:37 +0000)]
Make sure Sema::ActOnClassMessage() correctly diagnoses "super".

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

16 years agoAdded skeleton checking for NSString's method initWithFormat: (do not pass nil)....
Ted Kremenek [Fri, 28 Mar 2008 16:09:38 +0000 (16:09 +0000)]
Added skeleton checking for NSString's method initWithFormat: (do not pass nil).  This won't be useful in most cases right now
because the analyzer isn't tracking expected types for an object, and [NSString alloc] just runs "id".

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

16 years agoAdd some of Ted's recent work to the VC++ project file.
Steve Naroff [Thu, 27 Mar 2008 22:59:54 +0000 (22:59 +0000)]
Add some of Ted's recent work to the VC++ project file.
Fix a couple bozo bugs in the rewriter.

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

16 years agoCollect all the preamble code and don't insert it until the end.
Steve Naroff [Thu, 27 Mar 2008 22:29:16 +0000 (22:29 +0000)]
Collect all the preamble code and don't insert it until the end.

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

16 years agoExpanded NSString checking to check for nil for a few more methods.
Ted Kremenek [Thu, 27 Mar 2008 22:05:32 +0000 (22:05 +0000)]
Expanded NSString checking to check for nil for a few more methods.

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

16 years agoAdd line SourceLocation to NSString checks.
Ted Kremenek [Thu, 27 Mar 2008 21:23:57 +0000 (21:23 +0000)]
Add line SourceLocation to NSString checks.
Added test case to test warning about passing 'nil' to NSString's compare: method.

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

16 years agoHooked up initial NSString interface checking to GRSimpleVals.
Ted Kremenek [Thu, 27 Mar 2008 21:15:17 +0000 (21:15 +0000)]
Hooked up initial NSString interface checking to GRSimpleVals.

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

16 years agoProgramPoint is just a smart pointer; no reason to return a constant reference.
Ted Kremenek [Thu, 27 Mar 2008 18:11:59 +0000 (18:11 +0000)]
ProgramPoint is just a smart pointer; no reason to return a constant reference.

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

16 years agoMinor CSS tweaking (smaller h1 tags).
Ted Kremenek [Thu, 27 Mar 2008 17:28:58 +0000 (17:28 +0000)]
Minor CSS tweaking (smaller h1 tags).
Bug fix in EscapeText (for std::string) where spaces were not properly emitted.

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

16 years agoFor HTMLDiagnostics, when emitting the name of the directory, substitute the current...
Ted Kremenek [Thu, 27 Mar 2008 17:25:28 +0000 (17:25 +0000)]
For HTMLDiagnostics, when emitting the name of the directory, substitute the current working directory for "."

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

16 years agoUpdate Xcode project: add BasicObjCFoundationChecks.h
Ted Kremenek [Thu, 27 Mar 2008 17:17:51 +0000 (17:17 +0000)]
Update Xcode project: add BasicObjCFoundationChecks.h

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

16 years agoAdd creation of BasicObjCFoundationChecks when running GRSimpleVals from the driver.
Ted Kremenek [Thu, 27 Mar 2008 17:17:22 +0000 (17:17 +0000)]
Add creation of BasicObjCFoundationChecks when running GRSimpleVals from the driver.

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

16 years agoAdd default ctor implementation.
Ted Kremenek [Thu, 27 Mar 2008 17:16:06 +0000 (17:16 +0000)]
Add default ctor implementation.

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

16 years agoAdd html::EscapeText for std::string; use this function to escape text in message...
Ted Kremenek [Thu, 27 Mar 2008 17:15:29 +0000 (17:15 +0000)]
Add html::EscapeText for std::string; use this function to escape text in message bubbles.

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

16 years agoDon't emit any timings for GRSimple if the CFG is not going to be built.
Ted Kremenek [Thu, 27 Mar 2008 17:14:42 +0000 (17:14 +0000)]
Don't emit any timings for GRSimple if the CFG is not going to be built.

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

16 years agoOutput directory as well as file name.
Ted Kremenek [Thu, 27 Mar 2008 07:39:04 +0000 (07:39 +0000)]
Output directory as well as file name.

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

16 years agoAdded <h3> tag in HTML file output that contains the name of the source file.
Ted Kremenek [Thu, 27 Mar 2008 07:35:49 +0000 (07:35 +0000)]
Added <h3> tag in HTML file output that contains the name of the source file.

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

16 years agoAdded AnnotatedPath.h, GRAuditor.h, GRSimpleAPICheck.h and BasicObjCFoundationChecks...
Ted Kremenek [Thu, 27 Mar 2008 07:26:42 +0000 (07:26 +0000)]
Added AnnotatedPath.h, GRAuditor.h, GRSimpleAPICheck.h and BasicObjCFoundationChecks.cpp to Xcode project.

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

16 years agoAdded "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless checkers...
Ted Kremenek [Thu, 27 Mar 2008 07:25:52 +0000 (07:25 +0000)]
Added "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless checkers to be injected into the analyzer.
Added "AnnotatedPath" class to record an annotated path that will be useful for inspecting paths.
Added some boilerplate code for simple checks of Apple's Foundation API.

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

16 years agoUpdated Xcode project with HTMLDiagnostics.[h,cpp]
Ted Kremenek [Thu, 27 Mar 2008 06:18:34 +0000 (06:18 +0000)]
Updated Xcode project with HTMLDiagnostics.[h,cpp]

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

16 years agoAdded "HTMLDiagnostic", a generic DiagnosticClient (that also implements PathDiagnostic)
Ted Kremenek [Thu, 27 Mar 2008 06:17:42 +0000 (06:17 +0000)]
Added "HTMLDiagnostic", a generic DiagnosticClient (that also implements PathDiagnostic)
so that all diagnostics can be piped to HTML files instead of as text diagnostics using --html-diags.

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

16 years agoPathDiagnosticPiece no longer contains a vector of strings; just one string.
Ted Kremenek [Thu, 27 Mar 2008 06:16:40 +0000 (06:16 +0000)]
PathDiagnosticPiece no longer contains a vector of strings; just one string.
PathDiagnostic no longer contains a diagnostic ID or diagnostic level.

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

16 years agoFixed copy-paste error.
Ted Kremenek [Thu, 27 Mar 2008 05:52:45 +0000 (05:52 +0000)]
Fixed copy-paste error.

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

16 years agoAdded PathDiagnostic.[h,cpp] to Xcode project.
Ted Kremenek [Thu, 27 Mar 2008 03:50:10 +0000 (03:50 +0000)]
Added PathDiagnostic.[h,cpp] to Xcode project.

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

16 years agoAdded classes "PathDiagnosticPiece", "PathDiagnostic", and "PathDiagnosticClient...
Ted Kremenek [Thu, 27 Mar 2008 03:49:32 +0000 (03:49 +0000)]
Added classes "PathDiagnosticPiece", "PathDiagnostic", and "PathDiagnosticClient", which encapsulate diagnostic reporting for paths.

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

16 years agoIn ObjCMessageExpr: getSelector() const should just return "Selector", not "const...
Ted Kremenek [Thu, 27 Mar 2008 03:47:43 +0000 (03:47 +0000)]
In ObjCMessageExpr: getSelector() const should just return "Selector", not "const Selector&" because Selector is just a smart pointer.

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

16 years agoFix rewriter tests to work with new output file logic. This changes forces the output...
Steve Naroff [Wed, 26 Mar 2008 22:28:40 +0000 (22:28 +0000)]
Fix rewriter tests to work with new output file logic. This changes forces the output to standard out (rather than generate a .cpp file, which is the new default for the rewriter).

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

16 years agoBug fix: use GetRVal instead of GetLVal (were getting the value of a DeclRefExpr...
Ted Kremenek [Wed, 26 Mar 2008 22:21:58 +0000 (22:21 +0000)]
Bug fix: use GetRVal instead of GetLVal (were getting the value of a DeclRefExpr, not it's address).

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

16 years agoAdded test case for static analysis to warn about passing uninitialized values as...
Ted Kremenek [Wed, 26 Mar 2008 22:00:11 +0000 (22:00 +0000)]
Added test case for static analysis to warn about passing uninitialized values as arguments (not the receiver) in message expressions.

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

16 years agoAdded test case for static analyzer to detect uses of uninitialized pointers as recei...
Ted Kremenek [Wed, 26 Mar 2008 21:51:44 +0000 (21:51 +0000)]
Added test case for static analyzer to detect uses of uninitialized pointers as receivers in Objective-C message expressions.
Added test case directory "Analysis-Apple" which is only run on Apple (darwin) machines.

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

16 years agoBug fix in transfer function for ObjCMessageExpr: Visit the receiver expression as...
Ted Kremenek [Wed, 26 Mar 2008 21:36:08 +0000 (21:36 +0000)]
Bug fix in transfer function for ObjCMessageExpr: Visit the receiver expression as an ordinary expression, not using VisitLVal.

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

16 years agoAlloc redeclaration of typedefs within ExternCSystemHeaderDir's AND SystemHeaderDir's.
Steve Naroff [Wed, 26 Mar 2008 21:27:00 +0000 (21:27 +0000)]
Alloc redeclaration of typedefs within ExternCSystemHeaderDir's AND SystemHeaderDir's.

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

16 years agoallow the format attribute to be specified in function pointer prototypes
Nuno Lopes [Tue, 25 Mar 2008 23:01:48 +0000 (23:01 +0000)]
allow the format attribute to be specified in function pointer prototypes
# this is my first commit here, so please be gentle :)

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

16 years agoAdded hacked version of ccc script used to invoke the static analyzer. This
Ted Kremenek [Tue, 25 Mar 2008 22:35:32 +0000 (22:35 +0000)]
Added hacked version of ccc script used to invoke the static analyzer.  This
will gradually get pruned down, as it doesn't need to be as functional as
'ccc'.

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

16 years agoExtend QualType::getAddressSpace to do the right thing for array types, and in
Nate Begeman [Tue, 25 Mar 2008 18:36:32 +0000 (18:36 +0000)]
Extend QualType::getAddressSpace to do the right thing for array types, and in
the future, RecordTypes.

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

16 years agoAdd missing files
Nate Begeman [Tue, 25 Mar 2008 18:31:12 +0000 (18:31 +0000)]
Add missing files

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

16 years agoGRSimple analysis now outputs additional diagnostic warnings about
Ted Kremenek [Tue, 25 Mar 2008 16:40:05 +0000 (16:40 +0000)]
GRSimple analysis now outputs additional diagnostic warnings about
passing an uninitialized value to a message expresion.

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