56949 Commits

Author SHA1 Message Date
Chris Lattner
85e2e141db various cleanups
llvm-svn: 67981
2009-03-29 05:01:10 +00:00
Chris Lattner
20d79aa1c2 adjust to llvm mainline changes.
llvm-svn: 67980
2009-03-29 04:32:54 +00:00
Chris Lattner
eb71b17705 Replace the PointerLikeTypeTraits::getNumLowBitsAvailable
function with a new NumLowBitsAvailable enum, which makes the
value available as an integer constant expression.

Add PointerLikeTypeTraits specializations for Instruction* and
Use** since they are only guaranteed 4-byte aligned.

Enhance PointerIntPair to know about (and enforce) the alignment
specified by PointerLikeTypeTraits.  This should allow things 
like PointerIntPair<PointerIntPair<void*, 1,bool>, 1, bool> 
because the inner one knows that 2 low bits are free.

llvm-svn: 67979
2009-03-29 04:32:37 +00:00
Chris Lattner
114597d69b tighten this up, the decl *must* be a declcontext, no need for the dynamic check.
llvm-svn: 67978
2009-03-29 04:30:19 +00:00
Chris Lattner
59f1a41f2e add fixme
llvm-svn: 67977
2009-03-29 01:03:29 +00:00
Ted Kremenek
42361b3eb5 Update checker build.
llvm-svn: 67976
2009-03-29 00:43:39 +00:00
Chris Lattner
ed6b4b0598 add getNumLowBitsAvailable for OpaquePtr and QualType.
llvm-svn: 67975
2009-03-29 00:41:20 +00:00
Chris Lattner
22d059dbde follow llvm mainline, where PointerLikeTypeInfo got renamed
to PointerLikeTypeTraits.

llvm-svn: 67974
2009-03-29 00:39:47 +00:00
Chris Lattner
a00f0d7e4c rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for
# low bits free, and move to its own header.

llvm-svn: 67973
2009-03-29 00:39:30 +00:00
Ted Kremenek
554b5370e4 scan-build: Also look for clang-cc in ../libexec
llvm-svn: 67972
2009-03-29 00:31:32 +00:00
Chris Lattner
8eda11bd9d now that you can put a PointerIntPair in a SmallPtrSet, remove some
hackish workarounds from memdep

llvm-svn: 67971
2009-03-29 00:24:04 +00:00
Chris Lattner
dc2999b4df teach SmallPtrSet that PointerIntPair is "basically a pointer".
llvm-svn: 67970
2009-03-29 00:18:42 +00:00
Eli Friedman
bbcf49e410 Initial implementation of ARM ABI. Mostly untested. Note that I'm not
really intending to take ownership of this; I wrote this mostly because 
I was curious about how the ARM ABI works.  It should be a decent start, 
though.

llvm-svn: 67969
2009-03-29 00:15:25 +00:00
Chris Lattner
a59a3e2d10 QualType can go in SmallPtrSet now, simplify code that used to have
to work around this.

llvm-svn: 67968
2009-03-29 00:04:01 +00:00
Chris Lattner
5ab14f5175 implement the PointerLikeTypeInfo trait for QualType, allowing
it to be stuck into a SmallPtrSet.

llvm-svn: 67967
2009-03-29 00:03:08 +00:00
Anders Carlsson
bb1e4724f1 More improvements to namespace aliases. We now support everything except aliases in using directives.
llvm-svn: 67966
2009-03-28 23:53:49 +00:00
Anders Carlsson
c8820e5f9f Handle the case where the namespace decl is an alias.
llvm-svn: 67965
2009-03-28 23:50:18 +00:00
Anders Carlsson
3694935cd2 Fix lookup bug
llvm-svn: 67964
2009-03-28 23:49:35 +00:00
Anders Carlsson
f03bb51a00 Let getIdentifierNamespaceForKind know about aliases and have it treat them just like namespace decls.
llvm-svn: 67963
2009-03-28 23:02:53 +00:00
Anders Carlsson
ff25fdf2fb Create AST nodes for namespace aliases.
llvm-svn: 67962
2009-03-28 22:58:02 +00:00
Anders Carlsson
47952aec09 Parse the location of the 'namespace' token to ActOnNamespaceAliasDef. No functionality change.
llvm-svn: 67961
2009-03-28 22:53:22 +00:00
Ted Kremenek
035cf930d5 Fix regression in pointer comparison with NULL (e.g., 0 != ptr). This fixes
<rdar://problem/6732151>.

llvm-svn: 67954
2009-03-28 19:59:33 +00:00
Chris Lattner
356d974a93 add a note
llvm-svn: 67953
2009-03-28 19:26:55 +00:00
Chris Lattner
83f095cc7e Introduce a new OpaquePtr<N> struct type, which is a simple POD wrapper for a
pointer.  Its purpose in life is to be a glorified void*, but which does not
implicitly convert to void* or other OpaquePtr's with a different UID.

Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>.  Change the 
entire parser/sema interface to use DeclPtrTy instead of DeclTy*.  This
makes the C++ compiler enforce that these aren't convertible to other opaque
types.

We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc,
but I don't plan to do that in the short term.

The one outstanding known problem with this patch is that we lose the 
bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to
bitmangle the success bit into the low bit of DeclPtrTy.  I will rectify
this with a subsequent patch.

llvm-svn: 67952
2009-03-28 19:18:32 +00:00
Chris Lattner
b7de9b7704 sort alphabetically
llvm-svn: 67951
2009-03-28 19:10:22 +00:00
Rafael Espindola
1f11c3c36f Use array_lengthof
llvm-svn: 67950
2009-03-28 19:02:18 +00:00
Rafael Espindola
6ff3dabbb4 Have only one definition of X86AddrNumOperands.
llvm-svn: 67949
2009-03-28 18:55:31 +00:00
Ted Kremenek
b505811250 Adjust control-flow endpoints for '&&' and '||'.
llvm-svn: 67948
2009-03-28 17:33:57 +00:00
Ted Kremenek
ae1c4a40ef Add comparison operators for PathDiagosticLocation.
llvm-svn: 67947
2009-03-28 17:33:08 +00:00
Ted Kremenek
04ab6c8b17 Add comparison operators for SourceRange.
llvm-svn: 67946
2009-03-28 17:32:39 +00:00
Rafael Espindola
c2a17d3022 Make code a bit less brittle by no hardcoding the number
of operands in an address in so many places.

llvm-svn: 67945
2009-03-28 17:03:24 +00:00
Cedric Venet
351c71a85f CMake: remove TranslationUnit.cpp from build (file has been removed).
llvm-svn: 67944
2009-03-28 12:41:49 +00:00
Arnold Schwaighofer
e622cbf385 Make check in CheckTailCallReturnConstraints for ignorable instructions between
a CALL and a RET node more generic. Add a test for tail calls with a void
return.

llvm-svn: 67943
2009-03-28 12:36:29 +00:00
Bill Wendling
c619aaf122 Update the Visual Studio docs. Patch by Stefanus!
llvm-svn: 67940
2009-03-28 10:24:15 +00:00
Arnold Schwaighofer
83d5420d02 Enable tail call optimization for functions that return a struct (bug 3664) and for functions that return types that need extending (e.g i1).
llvm-svn: 67934
2009-03-28 08:33:27 +00:00
Chris Lattner
8372efd39a move file to proper place.
llvm-svn: 67933
2009-03-28 08:04:44 +00:00
Anders Carlsson
b81608499e As Eli pointed out, it is possible that a namespace lookup is ambiguous!
llvm-svn: 67932
2009-03-28 07:51:31 +00:00
Chris Lattner
0527eda02e declare everything as class to avoid angering the VC++ gods.
llvm-svn: 67931
2009-03-28 07:48:03 +00:00
Chris Lattner
dec48eab86 add a traits class for SmallPtrSet that allows us to stick things that are
"basically pointers" into it.

llvm-svn: 67930
2009-03-28 07:44:53 +00:00
Chris Lattner
a3d4aeb113 add accessors.
llvm-svn: 67929
2009-03-28 07:00:38 +00:00
Chris Lattner
6b6185b18f some random cleanups
llvm-svn: 67928
2009-03-28 06:53:40 +00:00
Chris Lattner
e173d44137 eliminate unneeded iterator wrappers.
llvm-svn: 67927
2009-03-28 06:47:16 +00:00
Chris Lattner
330958e9b0 change NamespaceDecl to hold its 'NextNamespace' pointer itself
instead of in NextDeclarator.  This temporarily increases memory
usage, but simplifies and decouples things.

llvm-svn: 67926
2009-03-28 06:44:59 +00:00
Anders Carlsson
ac2c96528f Check that the alias points to a valid namespace.
llvm-svn: 67925
2009-03-28 06:42:02 +00:00
Ted Kremenek
ae1aa43617 Properly escape special characters in <string>'s in plist file.
llvm-svn: 67924
2009-03-28 06:40:54 +00:00
Chris Lattner
529efc74ad rename some methods.
llvm-svn: 67923
2009-03-28 06:33:19 +00:00
Chris Lattner
23b88b73e1 Cleanups for DeclGroup.
llvm-svn: 67922
2009-03-28 06:26:18 +00:00
Anders Carlsson
dca83c4676 Check that the namespace alias doesn't conflict with a previous declaration in this scope.
llvm-svn: 67921
2009-03-28 06:23:46 +00:00
Chris Lattner
2f14ce0a74 tidy whitespace.
llvm-svn: 67920
2009-03-28 06:13:37 +00:00
Chris Lattner
fcd33a68e4 rename NextDeclInScope to NextDeclInContext, since the pointer
points within contexts not scopes.

llvm-svn: 67919
2009-03-28 06:04:26 +00:00