<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang/tools/CIndex, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2010-04-30T21:51:10+00:00</updated>
<entry>
<title>Rename 'CIndex' to 'libclang', since it has basically become our stable public</title>
<updated>2010-04-30T21:51:10+00:00</updated>
<author>
<name>Daniel Dunbar</name>
<email>daniel@zuster.org</email>
</author>
<published>2010-04-30T21:51:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d5a2a073a06427d713065185d0a3a68612d1390a'/>
<id>urn:sha1:d5a2a073a06427d713065185d0a3a68612d1390a</id>
<content type='text'>
(C) API, and will likely grow further in this direction in the future.

llvm-svn: 102779
</content>
</entry>
<entry>
<title>Teach clang_getLocation() to cope with a NULL file argument.</title>
<updated>2010-04-30T19:45:53+00:00</updated>
<author>
<name>Douglas Gregor</name>
<email>dgregor@apple.com</email>
</author>
<published>2010-04-30T19:45:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0925fbc3fd30f2654533bc54af7a6cc5d6b1c873'/>
<id>urn:sha1:0925fbc3fd30f2654533bc54af7a6cc5d6b1c873</id>
<content type='text'>
llvm-svn: 102748
</content>
</entry>
<entry>
<title>Add USR support for 'static inline' functions (which can be declared in header files).</title>
<updated>2010-04-29T17:43:29+00:00</updated>
<author>
<name>Ted Kremenek</name>
<email>kremenek@apple.com</email>
</author>
<published>2010-04-29T17:43:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=3b9ad93a353d7d571b3df847a516825ede0fd4e2'/>
<id>urn:sha1:3b9ad93a353d7d571b3df847a516825ede0fd4e2</id>
<content type='text'>
Add USR support for 'static' functions and local variables, which can be handy for resolving named variables within a translation unit.

llvm-svn: 102641
</content>
</entry>
<entry>
<title>Remove USRGenerator::VisitBlockDecl().  We don't need to generate USRs for blocks, since</title>
<updated>2010-04-29T17:43:26+00:00</updated>
<author>
<name>Ted Kremenek</name>
<email>kremenek@apple.com</email>
</author>
<published>2010-04-29T17:43:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=9825536eea859cd961adae279df3436df408ed49'/>
<id>urn:sha1:9825536eea859cd961adae279df3436df408ed49</id>
<content type='text'>
they have no linkage and by definition are anonymous.

llvm-svn: 102640
</content>
</entry>
<entry>
<title>Completely reimplement __builtin_offsetof, based on a patch by Roberto</title>
<updated>2010-04-28T22:16:22+00:00</updated>
<author>
<name>Douglas Gregor</name>
<email>dgregor@apple.com</email>
</author>
<published>2010-04-28T22:16:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=882211c1da17254908e6b36d6e5d4e425f224347'/>
<id>urn:sha1:882211c1da17254908e6b36d6e5d4e425f224347</id>
<content type='text'>
Amadini.

This change introduces a new expression node type, OffsetOfExpr, that
describes __builtin_offsetof. Previously, __builtin_offsetof was
implemented using a unary operator whose subexpression involved
various synthesized array-subscript and member-reference expressions,
which was ugly and made it very hard to instantiate as a
template. OffsetOfExpr represents the AST more faithfully, with proper
type source information and a more compact representation.

OffsetOfExpr also has support for dependent __builtin_offsetof
expressions; it can be value-dependent, but will never be
type-dependent (like sizeof or alignof). This commit introduces
template instantiation for __builtin_offsetof as well.

There are two major caveats to this patch:

  1) CodeGen cannot handle the case where __builtin_offsetof is not a
  constant expression, so it produces an error. So, to avoid
  regressing in C, we retain the old UnaryOperator-based
  __builtin_offsetof implementation in C while using the shiny new
  OffsetOfExpr implementation in C++. The old implementation can go
  away once we have proper CodeGen support for this case, which we
  expect won't cause much trouble in C++.

  2) __builtin_offsetof doesn't work well with non-POD class types,
  particularly when the designated field is found within a base
  class. I will address this in a subsequent patch.

Fixes PR5880 and a bunch of assertions when building Boost.Python
tests. 

llvm-svn: 102542
</content>
</entry>
<entry>
<title>Make TemplateDecl and ObjCContainerDecl abstract</title>
<updated>2010-04-22T23:35:25+00:00</updated>
<author>
<name>Douglas Gregor</name>
<email>dgregor@apple.com</email>
</author>
<published>2010-04-22T23:35:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ff1915208d94a3a2876dc5d794a27bba44a1c8ae'/>
<id>urn:sha1:ff1915208d94a3a2876dc5d794a27bba44a1c8ae</id>
<content type='text'>
llvm-svn: 102145
</content>
</entry>
<entry>
<title>CXXNamedCastExpr is actually an abstract expression.</title>
<updated>2010-04-21T06:32:25+00:00</updated>
<author>
<name>Zhongxing Xu</name>
<email>xuzhongxing@gmail.com</email>
</author>
<published>2010-04-21T06:32:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=105dfb5a7236e34a2bc0c5ca5fcb81fd735bccf1'/>
<id>urn:sha1:105dfb5a7236e34a2bc0c5ca5fcb81fd735bccf1</id>
<content type='text'>
llvm-svn: 101994
</content>
</entry>
<entry>
<title>Overhaul the AST representation of Objective-C message send</title>
<updated>2010-04-21T00:45:42+00:00</updated>
<author>
<name>Douglas Gregor</name>
<email>dgregor@apple.com</email>
</author>
<published>2010-04-21T00:45:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=9a1291942127751d4621f930d048fe22496e9681'/>
<id>urn:sha1:9a1291942127751d4621f930d048fe22496e9681</id>
<content type='text'>
expressions, to improve source-location information, clarify the
actual receiver of the message, and pave the way for proper C++
support. The ObjCMessageExpr node represents four different kinds of
message sends in a single AST node:

  1) Send to a object instance described by an expression (e.g., [x method:5])
  2) Send to a class described by the class name (e.g., [NSString method:5])
  3) Send to a superclass class (e.g, [super method:5] in class method)
  4) Send to a superclass instance (e.g., [super method:5] in instance method)

Previously these four cases where tangled together. Now, they have
more distinct representations. Specific changes:

  1) Unchanged; the object instance is represented by an Expr*.

  2) Previously stored the ObjCInterfaceDecl* referring to the class
  receiving the message. Now stores a TypeSourceInfo* so that we know
  how the class was spelled. This both maintains typedef information
  and opens the door for more complicated C++ types (e.g., dependent
  types). There was an alternative, unused representation of these
  sends by naming the class via an IdentifierInfo *. In practice, we
  either had an ObjCInterfaceDecl *, from which we would get the
  IdentifierInfo *, or we fell into the case below...

  3) Previously represented by a class message whose IdentifierInfo *
  referred to "super". Sema and CodeGen would use isStr("super") to
  determine if they had a send to super. Now represented as a
  "class super" send, where we have both the location of the "super"
  keyword and the ObjCInterfaceDecl* of the superclass we're
  targetting (statically).

  4) Previously represented by an instance message whose receiver is a
  an ObjCSuperExpr, which Sema and CodeGen would check for via
  isa&lt;ObjCSuperExpr&gt;(). Now represented as an "instance super" send,
  where we have both the location of the "super" keyword and the
  ObjCInterfaceDecl* of the superclass we're targetting
  (statically). Note that ObjCSuperExpr only has one remaining use in
  the AST, which is for "super.prop" references.

The new representation of ObjCMessageExpr is 2 pointers smaller than
the old one, since it combines more storage. It also eliminates a leak
when we loaded message-send expressions from a precompiled header. The
representation also feels much cleaner to me; comments welcome!

This patch attempts to maintain the same semantics we previously had
with Objective-C message sends. In several places, there are massive
changes that boil down to simply replacing a nested-if structure such
as:

  if (message has a receiver expression) {
    // instance message
    if (isa&lt;ObjCSuperExpr&gt;(...)) {
     // send to super
    } else {
     // send to an object
   }
  } else {
    // class message
    if (name-&gt;isStr("super")) {
      // class send to super
    } else {
      // send to class
    }
  }

with a switch

  switch (E-&gt;getReceiverKind()) {
  case ObjCMessageExpr::SuperInstance: ...
  case ObjCMessageExpr::Instance: ...
  case ObjCMessageExpr::SuperClass: ...
  case ObjCMessageExpr::Class:...
  }

There are quite a few places (particularly in the checkers) where
send-to-super is effectively ignored. I've placed FIXMEs in most of
them, and attempted to address send-to-super in a reasonable way. This
could use some review.

llvm-svn: 101972
</content>
</entry>
<entry>
<title>Fix USRs for 'extern' variables declaration in functions/method bodies.</title>
<updated>2010-04-20T23:15:40+00:00</updated>
<author>
<name>Ted Kremenek</name>
<email>kremenek@apple.com</email>
</author>
<published>2010-04-20T23:15:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6d159c1060f953aff48066111d48c7ce8e43b54b'/>
<id>urn:sha1:6d159c1060f953aff48066111d48c7ce8e43b54b</id>
<content type='text'>
Fix USRs for @synthesize.
Add more USR tests.

llvm-svn: 101954
</content>
</entry>
<entry>
<title>Keep proper source location information for the type in an Objective-C</title>
<updated>2010-04-20T15:39:42+00:00</updated>
<author>
<name>Douglas Gregor</name>
<email>dgregor@apple.com</email>
</author>
<published>2010-04-20T15:39:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=abd9e9689adcb5fb2fa65c2a069375dee017b037'/>
<id>urn:sha1:abd9e9689adcb5fb2fa65c2a069375dee017b037</id>
<content type='text'>
@encode expression. 

llvm-svn: 101907
</content>
</entry>
</feed>
