svn commit: r194179 - in vendor/clang/dist: . clang.xcodeproj docs include/clang/AST include/clang/Analysis include/clang/Basic include/clang/Driver include/clang/Frontend include/clang/Lex include...

Ed Schouten ed at FreeBSD.org
Sun Jun 14 09:24:04 UTC 2009


Author: ed
Date: Sun Jun 14 09:24:02 2009
New Revision: 194179
URL: http://svn.freebsd.org/changeset/base/194179

Log:
  Import Clang r73340.

Added:
  vendor/clang/dist/include/clang/Basic/Builtins.def
  vendor/clang/dist/include/clang/Basic/Builtins.h
  vendor/clang/dist/include/clang/Basic/BuiltinsPPC.def
  vendor/clang/dist/include/clang/Basic/BuiltinsX86.def
  vendor/clang/dist/include/clang/Basic/TargetBuiltins.h
  vendor/clang/dist/lib/Basic/Builtins.cpp
  vendor/clang/dist/test/CXX/
  vendor/clang/dist/test/CXX/basic/
  vendor/clang/dist/test/CXX/basic/basic.align/
  vendor/clang/dist/test/CXX/basic/basic.def/
  vendor/clang/dist/test/CXX/basic/basic.def.odr/
  vendor/clang/dist/test/CXX/basic/basic.life/
  vendor/clang/dist/test/CXX/basic/basic.link/
  vendor/clang/dist/test/CXX/basic/basic.lookup/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.argdep/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.classref/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.elab/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/concept.qual/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.udir/
  vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.unqual/
  vendor/clang/dist/test/CXX/basic/basic.lval/
  vendor/clang/dist/test/CXX/basic/basic.scope/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.funscope/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.class/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.concept/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.enum/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.hiding/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.local/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.namespace/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.pdecl/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.proto/
  vendor/clang/dist/test/CXX/basic/basic.scope/basic.scope.req/
  vendor/clang/dist/test/CXX/basic/basic.start/
  vendor/clang/dist/test/CXX/basic/basic.start/basic.start.init/
  vendor/clang/dist/test/CXX/basic/basic.start/basic.start.main/
  vendor/clang/dist/test/CXX/basic/basic.start/basic.start.term/
  vendor/clang/dist/test/CXX/basic/basic.stc/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.auto/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.allocation/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.deallocation/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.safety/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.inherit/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.static/
  vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.thread/
  vendor/clang/dist/test/CXX/basic/basic.types/
  vendor/clang/dist/test/CXX/basic/basic.types/basic.compound/
  vendor/clang/dist/test/CXX/basic/basic.types/basic.fundamental/
  vendor/clang/dist/test/CXX/basic/basic.types/basic.type.qualifier/
  vendor/clang/dist/test/CXX/class/
  vendor/clang/dist/test/CXX/class.access/
  vendor/clang/dist/test/CXX/class.access/class.access.base/
  vendor/clang/dist/test/CXX/class.access/class.access.dcl/
  vendor/clang/dist/test/CXX/class.access/class.access.nest/
  vendor/clang/dist/test/CXX/class.access/class.access.spec/
  vendor/clang/dist/test/CXX/class.access/class.access.virt/
  vendor/clang/dist/test/CXX/class.access/class.friend/
  vendor/clang/dist/test/CXX/class.access/class.paths/
  vendor/clang/dist/test/CXX/class.access/class.protected/
  vendor/clang/dist/test/CXX/class.derived/
  vendor/clang/dist/test/CXX/class.derived/class.abstract/
  vendor/clang/dist/test/CXX/class.derived/class.member.lookup/
  vendor/clang/dist/test/CXX/class.derived/class.mi/
  vendor/clang/dist/test/CXX/class.derived/class.virtual/
  vendor/clang/dist/test/CXX/class/class.bit/
  vendor/clang/dist/test/CXX/class/class.local/
  vendor/clang/dist/test/CXX/class/class.mem/
  vendor/clang/dist/test/CXX/class/class.mfct/
  vendor/clang/dist/test/CXX/class/class.mfct/class.mfct.non-static/
  vendor/clang/dist/test/CXX/class/class.mfct/class.this/
  vendor/clang/dist/test/CXX/class/class.name/
  vendor/clang/dist/test/CXX/class/class.nest/
  vendor/clang/dist/test/CXX/class/class.nested.type/
  vendor/clang/dist/test/CXX/class/class.static/
  vendor/clang/dist/test/CXX/class/class.static/class.static.data/
  vendor/clang/dist/test/CXX/class/class.static/class.static.mfct/
  vendor/clang/dist/test/CXX/class/class.union/
  vendor/clang/dist/test/CXX/conv/
  vendor/clang/dist/test/CXX/conv/conv.array/
  vendor/clang/dist/test/CXX/conv/conv.bool/
  vendor/clang/dist/test/CXX/conv/conv.double/
  vendor/clang/dist/test/CXX/conv/conv.fpint/
  vendor/clang/dist/test/CXX/conv/conv.fpprom/
  vendor/clang/dist/test/CXX/conv/conv.func/
  vendor/clang/dist/test/CXX/conv/conv.integral/
  vendor/clang/dist/test/CXX/conv/conv.lval/
  vendor/clang/dist/test/CXX/conv/conv.mem/
  vendor/clang/dist/test/CXX/conv/conv.prom/
  vendor/clang/dist/test/CXX/conv/conv.ptr/
  vendor/clang/dist/test/CXX/conv/conv.qual/
  vendor/clang/dist/test/CXX/conv/conv.rank/
  vendor/clang/dist/test/CXX/cpp/
  vendor/clang/dist/test/CXX/cpp/cpp.cond/
  vendor/clang/dist/test/CXX/cpp/cpp.error/
  vendor/clang/dist/test/CXX/cpp/cpp.include/
  vendor/clang/dist/test/CXX/cpp/cpp.line/
  vendor/clang/dist/test/CXX/cpp/cpp.null/
  vendor/clang/dist/test/CXX/cpp/cpp.pragma/
  vendor/clang/dist/test/CXX/cpp/cpp.pragma.op/
  vendor/clang/dist/test/CXX/cpp/cpp.predefined/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/cpp.concat/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/cpp.rescan/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/cpp.scope/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/cpp.stringize/
  vendor/clang/dist/test/CXX/cpp/cpp.replace/cpp.subst/
  vendor/clang/dist/test/CXX/dcl.dcl/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.alias/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.def/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.memdef/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.unnamed/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/
  vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udir/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.asm/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.align/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.final/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.grammar/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.enum/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.link/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p3.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p6.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.friend/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.stc/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p10.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p9.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.cv/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.simple/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p3.cpp
  vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p4.cpp
  vendor/clang/dist/test/CXX/dcl.decl/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.ambig.res/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.fct.def/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.init/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.list/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.string/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.array/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.fct/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.mptr/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.ptr/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.ref/
  vendor/clang/dist/test/CXX/dcl.decl/dcl.name/
  vendor/clang/dist/test/CXX/depr/
  vendor/clang/dist/test/CXX/depr/depr.access.dcl/
  vendor/clang/dist/test/CXX/depr/depr.auto.ptr/
  vendor/clang/dist/test/CXX/depr/depr.auto.ptr/auto.ptr/
  vendor/clang/dist/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/
  vendor/clang/dist/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/
  vendor/clang/dist/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.members/
  vendor/clang/dist/test/CXX/depr/depr.c.headers/
  vendor/clang/dist/test/CXX/depr/depr.incr.bool/
  vendor/clang/dist/test/CXX/depr/depr.ios.members/
  vendor/clang/dist/test/CXX/depr/depr.lib.binders/
  vendor/clang/dist/test/CXX/depr/depr.lib.binders/depr.lib.bind.1st/
  vendor/clang/dist/test/CXX/depr/depr.lib.binders/depr.lib.bind.2nd/
  vendor/clang/dist/test/CXX/depr/depr.lib.binders/depr.lib.binder.1st/
  vendor/clang/dist/test/CXX/depr/depr.lib.binders/depr.lib.binder.2nd/
  vendor/clang/dist/test/CXX/depr/depr.lib.iterator.primitives/
  vendor/clang/dist/test/CXX/depr/depr.lib.iterator.primitives/iterator.backward/
  vendor/clang/dist/test/CXX/depr/depr.lib.iterator.primitives/iterator.basic/
  vendor/clang/dist/test/CXX/depr/depr.lib.iterator.primitives/iterator.traits/
  vendor/clang/dist/test/CXX/depr/depr.lib.iterator.primitives/std.iterator.tags/
  vendor/clang/dist/test/CXX/depr/depr.static/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.istrstream/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.ostrstream/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstream/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/
  vendor/clang/dist/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/
  vendor/clang/dist/test/CXX/depr/depr.string/
  vendor/clang/dist/test/CXX/except/
  vendor/clang/dist/test/CXX/except/except.access/
  vendor/clang/dist/test/CXX/except/except.ctor/
  vendor/clang/dist/test/CXX/except/except.handle/
  vendor/clang/dist/test/CXX/except/except.spec/
  vendor/clang/dist/test/CXX/except/except.special/
  vendor/clang/dist/test/CXX/except/except.special/except.terminate/
  vendor/clang/dist/test/CXX/except/except.special/except.uncaught/
  vendor/clang/dist/test/CXX/except/except.special/except.unexpected/
  vendor/clang/dist/test/CXX/except/except.throw/
  vendor/clang/dist/test/CXX/expr/
  vendor/clang/dist/test/CXX/expr/expr.add/
  vendor/clang/dist/test/CXX/expr/expr.ass/
  vendor/clang/dist/test/CXX/expr/expr.bit.and/
  vendor/clang/dist/test/CXX/expr/expr.cast/
  vendor/clang/dist/test/CXX/expr/expr.comma/
  vendor/clang/dist/test/CXX/expr/expr.cond/
  vendor/clang/dist/test/CXX/expr/expr.const/
  vendor/clang/dist/test/CXX/expr/expr.eq/
  vendor/clang/dist/test/CXX/expr/expr.log.and/
  vendor/clang/dist/test/CXX/expr/expr.log.or/
  vendor/clang/dist/test/CXX/expr/expr.mptr.oper/
  vendor/clang/dist/test/CXX/expr/expr.mul/
  vendor/clang/dist/test/CXX/expr/expr.or/
  vendor/clang/dist/test/CXX/expr/expr.post/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.call/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.const.cast/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.dynamic.cast/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.post.incr/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.pseudo/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.ref/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.reinterpret.cast/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.static.cast/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.sub/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.type.conv/
  vendor/clang/dist/test/CXX/expr/expr.post/expr.typeid/
  vendor/clang/dist/test/CXX/expr/expr.prim/
  vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/
  vendor/clang/dist/test/CXX/expr/expr.rel/
  vendor/clang/dist/test/CXX/expr/expr.shift/
  vendor/clang/dist/test/CXX/expr/expr.unary/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.alignof/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.delete/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.new/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.pre.incr/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.sizeof/
  vendor/clang/dist/test/CXX/expr/expr.unary/expr.unary.op/
  vendor/clang/dist/test/CXX/expr/expr.xor/
  vendor/clang/dist/test/CXX/garbage.collection/
  vendor/clang/dist/test/CXX/implimits/
  vendor/clang/dist/test/CXX/intro/
  vendor/clang/dist/test/CXX/intro/intro.ack/
  vendor/clang/dist/test/CXX/intro/intro.compliance/
  vendor/clang/dist/test/CXX/intro/intro.defs/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.argument/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.cond.supp/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.diagnostic/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.dynamic.type/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.ill.formed/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.impl.defined/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.impl.limits/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.locale.specific/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.multibyte/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.parameter/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.signature/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.static.type/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.undefined/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.unspecified/
  vendor/clang/dist/test/CXX/intro/intro.defs/defns.well.formed/
  vendor/clang/dist/test/CXX/intro/intro.execution/
  vendor/clang/dist/test/CXX/intro/intro.memory/
  vendor/clang/dist/test/CXX/intro/intro.multithread/
  vendor/clang/dist/test/CXX/intro/intro.object/
  vendor/clang/dist/test/CXX/intro/intro.refs/
  vendor/clang/dist/test/CXX/intro/intro.scope/
  vendor/clang/dist/test/CXX/intro/intro.structure/
  vendor/clang/dist/test/CXX/intro/syntax/
  vendor/clang/dist/test/CXX/lex/
  vendor/clang/dist/test/CXX/lex/lex.charset/
  vendor/clang/dist/test/CXX/lex/lex.comment/
  vendor/clang/dist/test/CXX/lex/lex.digraph/
  vendor/clang/dist/test/CXX/lex/lex.header/
  vendor/clang/dist/test/CXX/lex/lex.key/
  vendor/clang/dist/test/CXX/lex/lex.literal/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.bool/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.ccon/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.ext/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.fcon/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.icon/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.nullptr/
  vendor/clang/dist/test/CXX/lex/lex.literal/lex.string/
  vendor/clang/dist/test/CXX/lex/lex.name/
  vendor/clang/dist/test/CXX/lex/lex.operators/
  vendor/clang/dist/test/CXX/lex/lex.phases/
  vendor/clang/dist/test/CXX/lex/lex.ppnumber/
  vendor/clang/dist/test/CXX/lex/lex.pptoken/
  vendor/clang/dist/test/CXX/lex/lex.token/
  vendor/clang/dist/test/CXX/lex/lex.trigraph/
  vendor/clang/dist/test/CXX/over/
  vendor/clang/dist/test/CXX/over/over.built/
  vendor/clang/dist/test/CXX/over/over.dcl/
  vendor/clang/dist/test/CXX/over/over.load/
  vendor/clang/dist/test/CXX/over/over.match/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ellipsis/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.list/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ref/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.scs/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/
  vendor/clang/dist/test/CXX/over/over.match/over.match.best/over.ics.rank/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.call/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.call/over.call.func/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.call/over.call.object/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.conv/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.copy/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.ctor/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.list/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.oper/
  vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.ref/
  vendor/clang/dist/test/CXX/over/over.match/over.match.viable/
  vendor/clang/dist/test/CXX/over/over.oper/
  vendor/clang/dist/test/CXX/over/over.oper/over.ass/
  vendor/clang/dist/test/CXX/over/over.oper/over.binary/
  vendor/clang/dist/test/CXX/over/over.oper/over.call/
  vendor/clang/dist/test/CXX/over/over.oper/over.inc/
  vendor/clang/dist/test/CXX/over/over.oper/over.literal/
  vendor/clang/dist/test/CXX/over/over.oper/over.ref/
  vendor/clang/dist/test/CXX/over/over.oper/over.sub/
  vendor/clang/dist/test/CXX/over/over.oper/over.unary/
  vendor/clang/dist/test/CXX/over/over.over/
  vendor/clang/dist/test/CXX/special/
  vendor/clang/dist/test/CXX/special/class.cdtor/
  vendor/clang/dist/test/CXX/special/class.conv/
  vendor/clang/dist/test/CXX/special/class.conv/class.conv.ctor/
  vendor/clang/dist/test/CXX/special/class.conv/class.conv.fct/
  vendor/clang/dist/test/CXX/special/class.copy/
  vendor/clang/dist/test/CXX/special/class.ctor/
  vendor/clang/dist/test/CXX/special/class.dtor/
  vendor/clang/dist/test/CXX/special/class.free/
  vendor/clang/dist/test/CXX/special/class.inhctor/
  vendor/clang/dist/test/CXX/special/class.init/
  vendor/clang/dist/test/CXX/special/class.init/class.base.init/
  vendor/clang/dist/test/CXX/special/class.init/class.expl.init/
  vendor/clang/dist/test/CXX/special/class.temporary/
  vendor/clang/dist/test/CXX/stmt.stmt/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.ambig/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.block/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.dcl/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.expr/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/stmt.do/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/stmt.for/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/stmt.while/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.jump/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.jump/stmt.break/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.jump/stmt.cont/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.jump/stmt.goto/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.jump/stmt.return/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.label/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.late/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.select/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.select/stmt.if/
  vendor/clang/dist/test/CXX/stmt.stmt/stmt.select/stmt.switch/
  vendor/clang/dist/test/CXX/temp/
  vendor/clang/dist/test/CXX/temp/concept/
  vendor/clang/dist/test/CXX/temp/concept/concept.def/
  vendor/clang/dist/test/CXX/temp/concept/concept.def/concept.assoc/
  vendor/clang/dist/test/CXX/temp/concept/concept.def/concept.axiom/
  vendor/clang/dist/test/CXX/temp/concept/concept.def/concept.fct/
  vendor/clang/dist/test/CXX/temp/concept/concept.def/concept.req/
  vendor/clang/dist/test/CXX/temp/concept/concept.map/
  vendor/clang/dist/test/CXX/temp/concept/concept.map/concept.map.assoc/
  vendor/clang/dist/test/CXX/temp/concept/concept.map/concept.map.fct/
  vendor/clang/dist/test/CXX/temp/concept/concept.refine/
  vendor/clang/dist/test/CXX/temp/concept/concept.refine/concept.member.lookup/
  vendor/clang/dist/test/CXX/temp/concept/concept.refine/concept.refine.maps/
  vendor/clang/dist/test/CXX/temp/concept/concept.support/
  vendor/clang/dist/test/CXX/temp/temp.arg/
  vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.nontype/
  vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.template/
  vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.type/
  vendor/clang/dist/test/CXX/temp/temp.constrained/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.archetype/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.archetype/temp.archetype.assemble/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.constrained.inst/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.constrained.set/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.req/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.req/temp.req.impl/
  vendor/clang/dist/test/CXX/temp/temp.constrained/temp.req/temp.req.sat/
  vendor/clang/dist/test/CXX/temp/temp.decls/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.alias/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class.spec/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class.spec/temp.class.order/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.match/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.mfunc/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.mem.class/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.mem.func/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.static/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.concept.map/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.fct/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.fct/temp.func.order/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.fct/temp.over.link/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.friend/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.mem/
  vendor/clang/dist/test/CXX/temp/temp.decls/temp.variadic/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.arg.explicit/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.funcaddr/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.partial/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/
  vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.over/
  vendor/clang/dist/test/CXX/temp/temp.names/
  vendor/clang/dist/test/CXX/temp/temp.param/
  vendor/clang/dist/test/CXX/temp/temp.param/p1.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p10.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p11.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p12.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p13.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p14.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p15-cxx0x.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p15.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p2.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p3.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p4.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p7.cpp
  vendor/clang/dist/test/CXX/temp/temp.param/p8.cpp
  vendor/clang/dist/test/CXX/temp/temp.res/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep.res/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep.res/temp.dep.candidate/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep.res/temp.point/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep/temp.dep.expr/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep/temp.dep.temp/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.dep/temp.dep.type/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.inject/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.local/
  vendor/clang/dist/test/CXX/temp/temp.res/temp.nondep/
  vendor/clang/dist/test/CXX/temp/temp.spec/
  vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/
  vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/
  vendor/clang/dist/test/CXX/temp/temp.spec/temp.inst/
  vendor/clang/dist/test/CXX/temp/temp.type/
  vendor/clang/dist/test/CodeGen/target-data.c
  vendor/clang/dist/test/CodeGenCXX/static-assert.cpp
  vendor/clang/dist/test/CodeGenObjC/property-complex.m
  vendor/clang/dist/test/Frontend/cpp-output.c
  vendor/clang/dist/test/Lexer/char-escapes.c
  vendor/clang/dist/test/Preprocessor/feature_tests.c
  vendor/clang/dist/test/Sema/init-vector.c
  vendor/clang/dist/test/SemaTemplate/dependent-names.cpp
  vendor/clang/dist/test/SemaTemplate/example-typelist.cpp
  vendor/clang/dist/test/SemaTemplate/instantiate-declref-ice.cpp
  vendor/clang/dist/test/SemaTemplate/instantiate-dependent-nested-name.cpp
  vendor/clang/dist/test/SemaTemplate/instantiate-member-pointers.cpp
  vendor/clang/dist/test/SemaTemplate/temp_class_spec_blocks.cpp
  vendor/clang/dist/test/SemaTemplate/temp_class_spec_neg.cpp
  vendor/clang/dist/test/SemaTemplate/typename-specifier-3.cpp
  vendor/clang/dist/test/SemaTemplate/variadic-class-template-1.cpp
  vendor/clang/dist/test/SemaTemplate/variadic-class-template-2.cpp
  vendor/clang/dist/test/SemaTemplate/variadic-parse.cpp
  vendor/clang/dist/test/SemaTemplate/variadic-unsupported.cpp
  vendor/clang/dist/test/cxx-sections.data
  vendor/clang/dist/test/make_test_dirs.pl   (contents, props changed)
  vendor/clang/dist/www/analyzer/
  vendor/clang/dist/www/analyzer/annotations.html
  vendor/clang/dist/www/analyzer/available_checks.html
  vendor/clang/dist/www/analyzer/content.css
  vendor/clang/dist/www/analyzer/filing_bugs.html
  vendor/clang/dist/www/analyzer/index.html
  vendor/clang/dist/www/analyzer/installation.html
  vendor/clang/dist/www/analyzer/latest_checker.html.incl
  vendor/clang/dist/www/analyzer/menu.css
  vendor/clang/dist/www/analyzer/menu.html.incl
  vendor/clang/dist/www/analyzer/scan-build.html
Deleted:
  vendor/clang/dist/include/clang/AST/Builtins.def
  vendor/clang/dist/include/clang/AST/Builtins.h
  vendor/clang/dist/include/clang/AST/PPCBuiltins.def
  vendor/clang/dist/include/clang/AST/TargetBuiltins.h
  vendor/clang/dist/include/clang/AST/X86Builtins.def
  vendor/clang/dist/lib/AST/Builtins.cpp
  vendor/clang/dist/test/SemaTemplate/right-angle-brackets-0x.cpp
  vendor/clang/dist/test/SemaTemplate/right-angle-brackets-98.cpp
  vendor/clang/dist/test/SemaTemplate/temp_param.cpp
  vendor/clang/dist/www/latest_checker.html.incl
Modified:
  vendor/clang/dist/CMakeLists.txt
  vendor/clang/dist/clang.xcodeproj/project.pbxproj
  vendor/clang/dist/docs/LanguageExtensions.html
  vendor/clang/dist/docs/PCHInternals.html
  vendor/clang/dist/docs/UsersManual.html
  vendor/clang/dist/include/clang/AST/ASTContext.h
  vendor/clang/dist/include/clang/AST/ASTDiagnostic.h
  vendor/clang/dist/include/clang/AST/Attr.h
  vendor/clang/dist/include/clang/AST/DeclBase.h
  vendor/clang/dist/include/clang/AST/DeclTemplate.h
  vendor/clang/dist/include/clang/AST/Stmt.h
  vendor/clang/dist/include/clang/Analysis/AnalysisDiagnostic.h
  vendor/clang/dist/include/clang/Basic/Diagnostic.h
  vendor/clang/dist/include/clang/Basic/Diagnostic.td
  vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td
  vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td
  vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td
  vendor/clang/dist/include/clang/Basic/SourceManager.h
  vendor/clang/dist/include/clang/Driver/DriverDiagnostic.h
  vendor/clang/dist/include/clang/Driver/Options.def
  vendor/clang/dist/include/clang/Frontend/FrontendDiagnostic.h
  vendor/clang/dist/include/clang/Lex/LexDiagnostic.h
  vendor/clang/dist/include/clang/Lex/Preprocessor.h
  vendor/clang/dist/include/clang/Parse/Action.h
  vendor/clang/dist/include/clang/Parse/ParseDiagnostic.h
  vendor/clang/dist/include/clang/Parse/Parser.h
  vendor/clang/dist/include/clang/Sema/SemaDiagnostic.h
  vendor/clang/dist/lib/AST/ASTContext.cpp
  vendor/clang/dist/lib/AST/CMakeLists.txt
  vendor/clang/dist/lib/AST/Decl.cpp
  vendor/clang/dist/lib/AST/DeclBase.cpp
  vendor/clang/dist/lib/AST/DeclCXX.cpp
  vendor/clang/dist/lib/AST/DeclPrinter.cpp
  vendor/clang/dist/lib/AST/DeclTemplate.cpp
  vendor/clang/dist/lib/AST/Expr.cpp
  vendor/clang/dist/lib/AST/ExprConstant.cpp
  vendor/clang/dist/lib/Analysis/CFRefCount.cpp
  vendor/clang/dist/lib/Analysis/GRExprEngine.cpp
  vendor/clang/dist/lib/Analysis/RegionStore.cpp
  vendor/clang/dist/lib/Basic/CMakeLists.txt
  vendor/clang/dist/lib/Basic/Diagnostic.cpp
  vendor/clang/dist/lib/Basic/Targets.cpp
  vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp
  vendor/clang/dist/lib/CodeGen/CGCall.cpp
  vendor/clang/dist/lib/CodeGen/CGExpr.cpp
  vendor/clang/dist/lib/CodeGen/CGExprComplex.cpp
  vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp
  vendor/clang/dist/lib/CodeGen/CGObjCMac.cpp
  vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp
  vendor/clang/dist/lib/CodeGen/Mangle.cpp
  vendor/clang/dist/lib/CodeGen/TargetABIInfo.cpp
  vendor/clang/dist/lib/Driver/Tools.cpp
  vendor/clang/dist/lib/Frontend/Backend.cpp
  vendor/clang/dist/lib/Frontend/PCHReaderStmt.cpp
  vendor/clang/dist/lib/Frontend/PCHWriterStmt.cpp
  vendor/clang/dist/lib/Frontend/PrintParserCallbacks.cpp
  vendor/clang/dist/lib/Headers/xmmintrin.h
  vendor/clang/dist/lib/Lex/LiteralSupport.cpp
  vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp
  vendor/clang/dist/lib/Parse/ParseDecl.cpp
  vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp
  vendor/clang/dist/lib/Parse/ParseExpr.cpp
  vendor/clang/dist/lib/Parse/ParseStmt.cpp
  vendor/clang/dist/lib/Parse/ParseTemplate.cpp
  vendor/clang/dist/lib/Parse/ParseTentative.cpp
  vendor/clang/dist/lib/Sema/Sema.cpp
  vendor/clang/dist/lib/Sema/Sema.h
  vendor/clang/dist/lib/Sema/SemaDecl.cpp
  vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp
  vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp
  vendor/clang/dist/lib/Sema/SemaExpr.cpp
  vendor/clang/dist/lib/Sema/SemaInherit.cpp
  vendor/clang/dist/lib/Sema/SemaInit.cpp
  vendor/clang/dist/lib/Sema/SemaLookup.cpp
  vendor/clang/dist/lib/Sema/SemaStmt.cpp
  vendor/clang/dist/lib/Sema/SemaTemplate.cpp
  vendor/clang/dist/lib/Sema/SemaTemplateDeduction.cpp
  vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp
  vendor/clang/dist/lib/Sema/SemaTemplateInstantiateExpr.cpp
  vendor/clang/dist/lib/Sema/SemaTemplateInstantiateStmt.cpp
  vendor/clang/dist/lib/Sema/SemaType.cpp
  vendor/clang/dist/test/Analysis/array-struct.c
  vendor/clang/dist/test/CodeGen/always_inline.c
  vendor/clang/dist/test/CodeGen/lineno-dbginfo.c
  vendor/clang/dist/test/CodeGen/x86_32-arguments.c
  vendor/clang/dist/test/Driver/clang_f_opts.c
  vendor/clang/dist/test/Makefile
  vendor/clang/dist/test/Parser/statements.c
  vendor/clang/dist/test/Sema/const-eval.c
  vendor/clang/dist/test/SemaCXX/default2.cpp
  vendor/clang/dist/test/SemaCXX/member-pointer.cpp
  vendor/clang/dist/test/SemaTemplate/default-arguments.cpp
  vendor/clang/dist/test/SemaTemplate/instantiate-function-1.cpp
  vendor/clang/dist/test/SemaTemplate/metafun-apply.cpp
  vendor/clang/dist/test/SemaTemplate/temp_class_spec.cpp
  vendor/clang/dist/tools/clang-cc/clang-cc.cpp
  vendor/clang/dist/www/OpenProjects.html
  vendor/clang/dist/www/StaticAnalysis.html
  vendor/clang/dist/www/StaticAnalysisUsage.html
  vendor/clang/dist/www/cxx_status.html
  vendor/clang/dist/www/menu.html.incl

Modified: vendor/clang/dist/CMakeLists.txt
==============================================================================
--- vendor/clang/dist/CMakeLists.txt	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/CMakeLists.txt	Sun Jun 14 09:24:02 2009	(r194179)
@@ -23,7 +23,7 @@ macro(add_clang_library name)
   endif(MSVC)
   install(TARGETS ${name}
     LIBRARY DESTINATION lib
-    ARCHIVE DESTINATION lib)
+    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
 endmacro(add_clang_library)
 
 macro(add_clang_executable name)

Modified: vendor/clang/dist/clang.xcodeproj/project.pbxproj
==============================================================================
--- vendor/clang/dist/clang.xcodeproj/project.pbxproj	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/clang.xcodeproj/project.pbxproj	Sun Jun 14 09:24:02 2009	(r194179)
@@ -138,6 +138,7 @@
 		DE3461270AFE68BE00DBC861 /* MinimalAction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE3461260AFE68BE00DBC861 /* MinimalAction.cpp */; };
 		DE34621D0AFEB19B00DBC861 /* StmtPrinter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE34621C0AFEB19B00DBC861 /* StmtPrinter.cpp */; };
 		DE3464220B03040900DBC861 /* Type.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DE3464210B03040900DBC861 /* Type.h */; };
+		DE37252E0FE481AD00CF2CC2 /* Builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE37252D0FE481AD00CF2CC2 /* Builtins.cpp */; };
 		DE38CD500D794D0100A273B6 /* CGObjCGNU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE38CD4F0D794D0100A273B6 /* CGObjCGNU.cpp */; };
 		DE38CF270D8C9E6C00A273B6 /* DeclObjC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE38CF260D8C9E6C00A273B6 /* DeclObjC.cpp */; };
 		DE3986F00CB8D4B300223765 /* IdentifierTable.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DE3986EF0CB8D4B300223765 /* IdentifierTable.h */; };
@@ -200,9 +201,6 @@
 		DECB78170FA5882F00F5FBC7 /* PCHWriterStmt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DECB78160FA5882F00F5FBC7 /* PCHWriterStmt.cpp */; };
 		DED626C90AE0C065001E80A4 /* TargetInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DED626C80AE0C065001E80A4 /* TargetInfo.cpp */; };
 		DED62ABB0AE2EDF1001E80A4 /* Decl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */; };
-		DED676D10B6C786700AAD4A3 /* Builtins.def in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED676D00B6C786700AAD4A3 /* Builtins.def */; };
-		DED676FA0B6C797B00AAD4A3 /* Builtins.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED676F90B6C797B00AAD4A3 /* Builtins.h */; };
-		DED677C90B6C854100AAD4A3 /* Builtins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DED677C80B6C854100AAD4A3 /* Builtins.cpp */; };
 		DED7D7410A524295003AD0FB /* Diagnostic.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED7D7310A524295003AD0FB /* Diagnostic.h */; };
 		DED7D7430A524295003AD0FB /* FileManager.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED7D7330A524295003AD0FB /* FileManager.h */; };
 		DED7D7450A524295003AD0FB /* SourceLocation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED7D7350A524295003AD0FB /* SourceLocation.h */; };
@@ -296,8 +294,6 @@
 				DE75ED290B044DC90020CF81 /* ASTContext.h in CopyFiles */,
 				DE1733700B068DC60080B521 /* DeclSpec.h in CopyFiles */,
 				DE01DA490B12ADA300AC22CE /* PPCallbacks.h in CopyFiles */,
-				DED676D10B6C786700AAD4A3 /* Builtins.def in CopyFiles */,
-				DED676FA0B6C797B00AAD4A3 /* Builtins.h in CopyFiles */,
 				1A30A9E90B93A4C800201A91 /* ExprCXX.h in CopyFiles */,
 				1A869A700BA2164C008DA07A /* LiteralSupport.h in CopyFiles */,
 				DE67E7150C020EDF00F66BC5 /* Sema.h in CopyFiles */,
@@ -353,9 +349,6 @@
 		1A5D5E570E5E81010023C059 /* CGCXX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGCXX.cpp; path = lib/CodeGen/CGCXX.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		1A649E1D0F9599D9005B965E /* CGBlocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CGBlocks.h; path = lib/CodeGen/CGBlocks.h; sourceTree = "<group>"; };
 		1A649E1E0F9599DA005B965E /* CGCXX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CGCXX.h; path = lib/CodeGen/CGCXX.h; sourceTree = "<group>"; };
-		1A68BC110D0CADDD001A28C8 /* PPCBuiltins.def */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text; name = PPCBuiltins.def; path = clang/AST/PPCBuiltins.def; sourceTree = "<group>"; tabWidth = 2; };
-		1A68BC120D0CADDD001A28C8 /* TargetBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = TargetBuiltins.h; path = clang/AST/TargetBuiltins.h; sourceTree = "<group>"; tabWidth = 2; };
-		1A68BC130D0CADDD001A28C8 /* X86Builtins.def */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text; name = X86Builtins.def; path = clang/AST/X86Builtins.def; sourceTree = "<group>"; tabWidth = 2; };
 		1A6FE7080FD6F85800E00CA9 /* CGCXXTemp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGCXXTemp.cpp; path = lib/CodeGen/CGCXXTemp.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		1A7019E90F79BC1100FEC4D1 /* DiagnosticAnalysisKinds.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DiagnosticAnalysisKinds.td; sourceTree = "<group>"; };
 		1A7019EA0F79BC1100FEC4D1 /* DiagnosticASTKinds.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DiagnosticASTKinds.td; sourceTree = "<group>"; };
@@ -525,6 +518,12 @@
 		DE3461260AFE68BE00DBC861 /* MinimalAction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = MinimalAction.cpp; path = lib/Parse/MinimalAction.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		DE34621C0AFEB19B00DBC861 /* StmtPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = StmtPrinter.cpp; path = lib/AST/StmtPrinter.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		DE3464210B03040900DBC861 /* Type.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = Type.h; path = clang/AST/Type.h; sourceTree = "<group>"; tabWidth = 2; };
+		DE37251C0FE4818000CF2CC2 /* Builtins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Builtins.h; sourceTree = "<group>"; };
+		DE37252A0FE4818F00CF2CC2 /* Builtins.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Builtins.def; sourceTree = "<group>"; };
+		DE37252D0FE481AD00CF2CC2 /* Builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Builtins.cpp; sourceTree = "<group>"; };
+		DE3725310FE4822800CF2CC2 /* TargetBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetBuiltins.h; sourceTree = "<group>"; };
+		DE3725320FE4826C00CF2CC2 /* BuiltinsX86.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BuiltinsX86.def; sourceTree = "<group>"; };
+		DE3725330FE4827200CF2CC2 /* BuiltinsPPC.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BuiltinsPPC.def; sourceTree = "<group>"; };
 		DE38CD4E0D794CF900A273B6 /* CGObjCRuntime.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = CGObjCRuntime.h; path = lib/CodeGen/CGObjCRuntime.h; sourceTree = "<group>"; tabWidth = 2; };
 		DE38CD4F0D794D0100A273B6 /* CGObjCGNU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGObjCGNU.cpp; path = lib/CodeGen/CGObjCGNU.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		DE38CF260D8C9E6C00A273B6 /* DeclObjC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = DeclObjC.cpp; path = lib/AST/DeclObjC.cpp; sourceTree = "<group>"; tabWidth = 2; };
@@ -621,9 +620,6 @@
 		DECB78540FA58F5500F5FBC7 /* AccessSpecifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AccessSpecifier.h; path = clang/Parse/AccessSpecifier.h; sourceTree = "<group>"; };
 		DED626C80AE0C065001E80A4 /* TargetInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; path = TargetInfo.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = Decl.cpp; path = lib/AST/Decl.cpp; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
-		DED676D00B6C786700AAD4A3 /* Builtins.def */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = text; name = Builtins.def; path = clang/AST/Builtins.def; sourceTree = "<group>"; tabWidth = 2; };
-		DED676F90B6C797B00AAD4A3 /* Builtins.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = Builtins.h; path = clang/AST/Builtins.h; sourceTree = "<group>"; tabWidth = 2; };
-		DED677C80B6C854100AAD4A3 /* Builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = Builtins.cpp; path = lib/AST/Builtins.cpp; sourceTree = "<group>"; tabWidth = 2; };
 		DED7D7310A524295003AD0FB /* Diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = Diagnostic.h; sourceTree = "<group>"; tabWidth = 2; };
 		DED7D7330A524295003AD0FB /* FileManager.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = FileManager.h; sourceTree = "<group>"; tabWidth = 2; };
 		DED7D7350A524295003AD0FB /* SourceLocation.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = SourceLocation.h; sourceTree = "<group>"; tabWidth = 2; };
@@ -1146,13 +1142,9 @@
 				DE75ED280B044DC90020CF81 /* ASTContext.h */,
 				DEA09A6E0F31756F000C2258 /* ASTDiagnostic.h */,
 				1A72BEAC0D641E9400B085E9 /* Attr.h */,
-				DED676D00B6C786700AAD4A3 /* Builtins.def */,
-				DED676F90B6C797B00AAD4A3 /* Builtins.h */,
 				90FB99DE0F98FB1D008F9415 /* DeclContextInternals.h */,
 				90FB99DF0F98FB1D008F9415 /* DeclVisitor.h */,
 				90FB99E00F98FB1D008F9415 /* ExternalASTSource.h */,
-				1A68BC110D0CADDD001A28C8 /* PPCBuiltins.def */,
-				1A68BC130D0CADDD001A28C8 /* X86Builtins.def */,
 				DEC63B1B0C7B940600DBF169 /* CFG.h */,
 				DEC8D9900A9433CD00353FCA /* Decl.h */,
 				3538FDB60ED24A2C005EC283 /* DeclarationName.h */,
@@ -1176,7 +1168,6 @@
 				DE345C190AFC658B00DBC861 /* StmtVisitor.h */,
 				35847BE30CC7DB9000C40FFF /* StmtIterator.h */,
 				35CFFE010CA1CBDD00E6F2BE /* StmtGraphTraits.h */,
-				1A68BC120D0CADDD001A28C8 /* TargetBuiltins.h */,
 				DEDFF87F0F848CE30035BD10 /* TemplateName.h */,
 				DEF16BE40FA13A5B0098507F /* TypeNodes.def */,
 				DEF16BE50FA13A650098507F /* TypeOrdering.h */,
@@ -1191,7 +1182,6 @@
 				DE8823CA0ED0046600CBC30A /* APValue.cpp */,
 				35BB2D7E0D19954000944DB5 /* ASTConsumer.cpp */,
 				DE1732FF0B068B700080B521 /* ASTContext.cpp */,
-				DED677C80B6C854100AAD4A3 /* Builtins.cpp */,
 				DEC63B190C7B940200DBF169 /* CFG.cpp */,
 				35FE6BCE0DF6EE1F00739712 /* DeclBase.cpp */,
 				DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */,
@@ -1238,6 +1228,10 @@
 		DED7D7300A524295003AD0FB /* Basic */ = {
 			isa = PBXGroup;
 			children = (
+				DE37251C0FE4818000CF2CC2 /* Builtins.h */,
+				DE37252A0FE4818F00CF2CC2 /* Builtins.def */,
+				DE3725330FE4827200CF2CC2 /* BuiltinsPPC.def */,
+				DE3725320FE4826C00CF2CC2 /* BuiltinsX86.def */,
 				906BF4AE0F83BA16001071FA /* ConvertUTF.h */,
 				DED7D7310A524295003AD0FB /* Diagnostic.h */,
 				DEDFFF070F959EE60035BD10 /* Diagnostic.td */,
@@ -1260,6 +1254,7 @@
 				DED7D7350A524295003AD0FB /* SourceLocation.h */,
 				DED7D7360A524295003AD0FB /* SourceManager.h */,
 				9063F2290F9E911F002F7251 /* SourceManagerInternals.h */,
+				DE3725310FE4822800CF2CC2 /* TargetBuiltins.h */,
 				DE46BF270AE0A82D00CC047C /* TargetInfo.h */,
 				9063F22A0F9E911F002F7251 /* TemplateKinds.h */,
 				DED7D7380A524295003AD0FB /* TokenKinds.h */,
@@ -1299,6 +1294,7 @@
 		DED7D7500A5242C7003AD0FB /* Basic */ = {
 			isa = PBXGroup;
 			children = (
+				DE37252D0FE481AD00CF2CC2 /* Builtins.cpp */,
 				906BF4AF0F83BA2E001071FA /* ConvertUTF.c */,
 				DED7D75D0A5242C7003AD0FB /* Diagnostic.cpp */,
 				DED7D75E0A5242C7003AD0FB /* FileManager.cpp */,
@@ -1526,7 +1522,6 @@
 				DE75EDF10B06880E0020CF81 /* Type.cpp in Sources */,
 				DE1733000B068B700080B521 /* ASTContext.cpp in Sources */,
 				DE17336E0B068DC20080B521 /* DeclSpec.cpp in Sources */,
-				DED677C90B6C854100AAD4A3 /* Builtins.cpp in Sources */,
 				1A869AA80BA21ABA008DA07A /* LiteralSupport.cpp in Sources */,
 				DE67E70B0C020EC500F66BC5 /* SemaType.cpp in Sources */,
 				DE67E70D0C020ECA00F66BC5 /* SemaStmt.cpp in Sources */,
@@ -1699,6 +1694,7 @@
 				1A6FE7090FD6F85800E00CA9 /* CGCXXTemp.cpp in Sources */,
 				BDF87CF70FD746F300BBF872 /* SemaTemplateDeduction.cpp in Sources */,
 				1A14D3A70FD78A3F00DA2835 /* DeclPrinter.cpp in Sources */,
+				DE37252E0FE481AD00CF2CC2 /* Builtins.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: vendor/clang/dist/docs/LanguageExtensions.html
==============================================================================
--- vendor/clang/dist/docs/LanguageExtensions.html	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/docs/LanguageExtensions.html	Sun Jun 14 09:24:02 2009	(r194179)
@@ -19,6 +19,7 @@ td {
 
 <ul>
 <li><a href="#intro">Introduction</a></li>
+<li><a href="#feature_check">Feature Checking Macros</a></li>
 <li><a href="#builtinmacros">Builtin Macros</a></li>
 <li><a href="#vectors">Vectors and Extended Vectors</a></li>
 <li><a href="#blocks">Blocks</a></li>
@@ -45,12 +46,73 @@ td {
 <!-- ======================================================================= -->
 
 <p>This document describes the language extensions provided by Clang.  In
-addition to the langauge extensions listed here, Clang aims to support a broad
+addition to the language extensions listed here, Clang aims to support a broad
 range of GCC extensions.  Please see the <a 
 href="http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html">GCC manual</a> for
 more information on these extensions.</p>
 
 <!-- ======================================================================= -->
+<h2 id="feature_check">Feature Checking Macros</h2>
+<!-- ======================================================================= -->
+
+<p>Language extensions can be very useful, but only if you know you can depend
+on them.  In order to allow fine-grain features checks, we support two builtin
+function-like macros.  This allows you to directly test for a feature in your
+code without having to resort to something like autoconf or fragile "compiler
+version checks".</p>
+
+<!-- ======================================================================= -->
+<h3 id="__has_builtin">__has_builtin</h3>
+<!-- ======================================================================= -->
+
+<p>This function-like macro takes a single identifier argument that is the name
+of a builtin function.  It evaluates to 1 if the builtin is supported or 0 if
+not.  It can be used like this:</p>
+
+<blockquote>
+<pre>
+#ifndef __has_builtin         // Optional of course.
+  #define __has_builtin(x) 0  // Compatibility with non-clang compilers.
+#endif
+
+...
+#if __has_builtin(__builtin_trap)
+  __builtin_trap();
+#else
+  abort();
+#endif
+...
+</pre>
+</blockquote>
+
+
+<!-- ======================================================================= -->
+<h3 id="__has_feature">__has_feature</h3>
+<!-- ======================================================================= -->
+
+<p>This function-like macro takes a single identifier argument that is the name
+of a feature.  It evaluates to 1 if the feature is supported or 0 if not.  It
+can be used like this:</p>
+
+<blockquote>
+<pre>
+#ifndef __has_feature         // Optional of course.
+  #define __has_feature(x) 0  // Compatibility with non-clang compilers.
+#endif
+
+...
+#if __has_feature(attribute_overloadable) || \
+    __has_feature(blocks)
+...
+#endif
+...
+</pre>
+</blockquote>
+
+<p>The feature tag is described along with the language feature below.</p>
+
+
+<!-- ======================================================================= -->
 <h2 id="builtinmacros">Builtin Macros</h2>
 <!-- ======================================================================= -->
 
@@ -64,6 +126,8 @@ more information on these extensions.</p
 with V.xyzw syntax and other tidbits.  See also <a 
 href="#__builtin_shufflevector">__builtin_shufflevector</a>.</p>
 
+<p>Query for this feature with __has_feature(attribute_ext_vector_type).</p>
+
 <!-- ======================================================================= -->
 <h2 id="blocks">Blocks</h2>
 <!-- ======================================================================= -->
@@ -73,6 +137,9 @@ href="BlockLanguageSpec.txt">BlockLangua
 details for the clang implementation are in <a 
 href="BlockImplementation.txt">BlockImplementation.txt</a>.</p>
 
+
+<p>Query for this feature with __has_feature(blocks).</p>
+
 <!-- ======================================================================= -->
 <h2 id="overloading-in-c">Function Overloading in C</h2>
 <!-- ======================================================================= -->
@@ -171,6 +238,9 @@ caveats to this use of name mangling:</p
   C.</li>
 </ul>
 
+<p>Query for this feature with __has_feature(attribute_overloadable).</p>
+
+
 <!-- ======================================================================= -->
 <h2 id="builtins">Builtin Functions</h2>
 <!-- ======================================================================= -->
@@ -306,11 +376,11 @@ positives due to false paths) by marking
 with this attribute.</p>
 
 <p>While useful, <tt>noreturn</tt> is not applicable in all cases. Sometimes
-there are special functions that for all intensive purposes should be considered
-panic functions (i.e., they are only called when an internal program error
-occurs) but may actually return so that the program can fail gracefully. The
-<tt>analyzer_noreturn</tt> attribute allows one to annotate such functions as
-being interpreted as &quot;no return&quot; functions by the analyzer (thus
+there are special functions that for all intents and purposes should be
+considered panic functions (i.e., they are only called when an internal program
+error occurs) but may actually return so that the program can fail gracefully.
+The <tt>analyzer_noreturn</tt> attribute allows one to annotate such functions
+as being interpreted as &quot;no return&quot; functions by the analyzer (thus
 pruning bogus paths) but will not affect compilation (as in the case of
 <tt>noreturn</tt>).</p>
 
@@ -320,7 +390,10 @@ placed at the end of function prototypes
 
 <pre>
   void foo() <b>__attribute__((analyzer_noreturn))</b>;
-</p>
+</pre>
+
+<p>Query for this feature with __has_feature(attribute_analyzer_noreturn).</p>
+
 
 </div>
 </body>

Modified: vendor/clang/dist/docs/PCHInternals.html
==============================================================================
--- vendor/clang/dist/docs/PCHInternals.html	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/docs/PCHInternals.html	Sun Jun 14 09:24:02 2009	(r194179)
@@ -250,7 +250,7 @@ have been defined by the end of the head
 precompiled header, along with the token sequences that comprise each
 macro. The macro definitions are only read from the PCH file when the
 name of the macro first occurs in the program. This lazy loading of
-macro definitions is trigged by lookups into the <a
+macro definitions is triggered by lookups into the <a
  href="#idtable">identifier table</a>.</p>
 
 <h3 id="types">Types Block</h3>
@@ -296,8 +296,8 @@ declaration is described.</p>
 <p>Declarations in Clang's abstract syntax trees are stored
 hierarchically. At the top of the hierarchy is the translation unit
 (<code>TranslationUnitDecl</code>), which contains all of the
-declarations in the translation unit. These declarations---such as
-functions or struct types---may also contain other declarations inside
+declarations in the translation unit. These declarations (such as
+functions or struct types) may also contain other declarations inside
 them, and so on. Within Clang, each declaration is stored within a <a
 href="http://clang.llvm.org/docs/InternalsManual.html#DeclContext">declaration
 context</a>, as represented by the <code>DeclContext</code> class.
@@ -313,7 +313,7 @@ deserializing all of the declarations st
 context. Therefore, Clang will deserialize the translation unit
 declaration without deserializing the declarations within that
 translation unit. When required, the declarations stored within a
-declaration context will be serialized. There are two representations
+declaration context will be deserialized. There are two representations
 of the declarations within a declaration context, which correspond to
 the name-lookup and iteration behavior described above:</p>
 
@@ -410,7 +410,8 @@ contains:</p>
 mechanism introduces itself into the identifier table as an external
 lookup source. Thus, when the user program refers to an identifier
 that has not yet been seen, Clang will perform a lookup into the
-identifier table. If an identifier is found, its contents---macro definitions, flags, top-level declarations, etc.---will be deserialized, at which point the corresponding <code>IdentifierInfo</code> structure will have the same contents it would have after parsing the headers in the precompiled header.</p>
+identifier table. If an identifier is found, its contents (macro 
+definitions, flags, top-level declarations, etc.) will be deserialized, at which point the corresponding <code>IdentifierInfo</code> structure will have the same contents it would have after parsing the headers in the precompiled header.</p>
 
 <p>Within the PCH file, the identifiers used to name declarations are represented with an integral value. A separate table provides a mapping from this integral value (the identifier ID) to the location within the on-disk
 hash table where that identifier is stored. This mapping is used when

Modified: vendor/clang/dist/docs/UsersManual.html
==============================================================================
--- vendor/clang/dist/docs/UsersManual.html	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/docs/UsersManual.html	Sun Jun 14 09:24:02 2009	(r194179)
@@ -455,7 +455,7 @@ GCC.</p>
 for headers that are directly included within a source file. For example:</p>
 
 <pre>
-  $ clang -x c-header test.h -o test.h.cth
+  $ clang -x c-header test.h -o test.h.pch
   $ cat test.c
   #include "test.h"
   $ clang test.c -o test
@@ -564,17 +564,25 @@ implemented.</li>
 <li>clang does not support nested functions; this is a complex feature which
 is infrequently used, so it is unlikely to be implemented anytime soon.</li>
 
-<li>clang does not support __builtin_apply and friends; this extension requires
-complex code generator support that does not currently exist in LLVM, and there
-is very little demand, so it is unlikely to be implemented anytime soon.</li>
-
 <li>clang does not support global register variables, this is unlikely
-to be implemented soon.</li>
+to be implemented soon because it requires additional LLVM backend support.
+</li>
 
 <li>clang does not support static initialization of flexible array
 members. This appears to be a rarely used extension, but could be
 implemented pending user demand.</li>
 
+<li>clang does not support __builtin_va_arg_pack/__builtin_va_arg_pack_len. 
+This is used rarely, but in some potentially interesting places, like the
+glibc headers, so it may be implemented pending user demand.  Note that
+because clang pretends to be like GCC 4.2, and this extension was introduced
+in 4.3, the glibc headers will not try to use this extension with clang at
+the moment.</li>
+
+<li>clang does not support the gcc extension for forward-declaring function
+parameters; this has not showed up in any real-world code yet, though, so it
+might never be implemented.</li>
+
 </ul>
 
 <p>This is not a complete list; if you find an unsupported extension
@@ -589,16 +597,32 @@ bug-reporting guidelines somewhere?).</p
 <h3 id="c_unsupp_gcc">Intentionally unsupported GCC extensions</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 
-<p>clang does not support the gcc extension that allows variable-length arrays
+<ul>
+
+<li>clang does not support the gcc extension that allows variable-length arrays
 in structures.  This is for a few of reasons: one, it is tricky
 to implement, two, the extension is completely undocumented, and three, the
-extension appears to be very rarely used.</p>
+extension appears to be rarely used.</li>
 
-<p>clang does not support duplicate definitions of a function where one is
+<li>clang does not support duplicate definitions of a function where one is
 inline. This complicates clients of the AST which normally can expect there is
 at most one definition for each function. Source code using this feature should
 be changed to define the inline and out-of-line definitions in separate
-translation units.</p>
+translation units.</li>
+
+<li>clang does not have an equivalent to gcc's "fold"; this means that
+clang doesn't accept some constructs gcc might accept in contexts where a
+constant expression is required, like "x-x" where x is a variable, or calls
+to C library functions like strlen.</li>
+
+<li>clang does not support multiple alternative constraints in inline asm; this
+is an extremely obscure feature which would be complicated to implement
+correctly.</li>
+
+<li>clang does not support __builtin_apply and friends; this extension is
+extremely obscure and difficult to implement reliably.</li>
+
+</ul>
 
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 <h3 id="c_ms">Microsoft extensions</h3>

Modified: vendor/clang/dist/include/clang/AST/ASTContext.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/ASTContext.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/ASTContext.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -17,13 +17,11 @@
 #include "clang/Basic/IdentifierTable.h"
 #include "clang/Basic/LangOptions.h"
 #include "clang/AST/Attr.h"
-#include "clang/AST/Builtins.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/NestedNameSpecifier.h"
 #include "clang/AST/PrettyPrinter.h"
 #include "clang/AST/TemplateName.h"
 #include "clang/AST/Type.h"
-#include "clang/Basic/SourceLocation.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/FoldingSet.h"
 #include "llvm/ADT/OwningPtr.h"
@@ -56,6 +54,8 @@ namespace clang {
   class ObjCIvarRefExpr;
   class ObjCIvarDecl;
   
+  namespace Builtin { class Context; }
+  
 /// ASTContext - This class holds long-lived AST nodes (such as types and
 /// decls) that can be referred to throughout the semantic analysis of a file.
 class ASTContext {  
@@ -142,6 +142,7 @@ public:  
   TargetInfo &Target;
   IdentifierTable &Idents;
   SelectorTable &Selectors;
+  Builtin::Context &BuiltinInfo;
   DeclarationNameTable DeclarationNames;
   llvm::OwningPtr<ExternalASTSource> ExternalSource;
   clang::PrintingPolicy PrintingPolicy;
@@ -164,7 +165,6 @@ public:  
 
   TranslationUnitDecl *getTranslationUnitDecl() const { return TUDecl; }
 
-  Builtin::Context BuiltinInfo;
 
   // Builtin Types.
   QualType VoidTy;
@@ -181,21 +181,12 @@ public:  
   QualType DependentTy;
 
   ASTContext(const LangOptions& LOpts, SourceManager &SM, TargetInfo &t,
-             IdentifierTable &idents, SelectorTable &sels, 
-             bool FreeMemory = true, unsigned size_reserve=0,
-             bool InitializeBuiltins = true);
+             IdentifierTable &idents, SelectorTable &sels,
+             Builtin::Context &builtins,
+             bool FreeMemory = true, unsigned size_reserve=0);
 
   ~ASTContext();
 
-  /// \brief Initialize builtins.
-  ///
-  /// Typically, this routine will be called automatically by the
-  /// constructor. However, in certain cases (e.g., when there is a
-  /// PCH file to be loaded), the constructor does not perform
-  /// initialization for builtins. This routine can be called to
-  /// perform the initialization.
-  void InitializeBuiltins(IdentifierTable &idents);
-
   /// \brief Attach an external AST source to the AST context.
   ///
   /// The external AST source provides the ability to load parts of
@@ -455,6 +446,14 @@ public:  
   TemplateName getDependentTemplateName(NestedNameSpecifier *NNS, 
                                         const IdentifierInfo *Name);
 
+  enum GetBuiltinTypeError {
+    GE_None,        //< No error
+    GE_Missing_FILE //< Missing the FILE type from <stdio.h>
+  };
+  
+  /// GetBuiltinType - Return the type for the specified builtin.
+  QualType GetBuiltinType(unsigned ID, GetBuiltinTypeError &Error);
+  
 private:
   QualType getFromTargetType(unsigned Type) const;
 

Modified: vendor/clang/dist/include/clang/AST/ASTDiagnostic.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/ASTDiagnostic.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/ASTDiagnostic.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -15,7 +15,7 @@
 namespace clang {
   namespace diag { 
     enum {
-#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP) ENUM,
+#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,SFINAE) ENUM,
 #define ASTSTART
 #include "clang/Basic/DiagnosticASTKinds.inc"
 #undef DIAG

Modified: vendor/clang/dist/include/clang/AST/Attr.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/Attr.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/Attr.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -24,10 +24,16 @@ namespace clang {
 }
 
 
-// Defined in ASTContext.cpp
+// Defined in ASTContext.h
 void *operator new(size_t Bytes, clang::ASTContext &C,
                    size_t Alignment = 16) throw ();
 
+// It is good practice to pair new/delete operators.  Also, MSVC gives many
+// warnings if a matching delete overload is not declared, even though the
+// throw() spec guarantees it will not be implicitly called.
+void operator delete(void *Ptr, clang::ASTContext &C, size_t)
+              throw ();
+
 namespace clang {
 
 /// Attr - This represents one attribute.

Modified: vendor/clang/dist/include/clang/AST/DeclBase.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclBase.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/DeclBase.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -298,9 +298,13 @@ public:
   static bool CollectingStats(bool Enable = false);
   static void PrintStats();
     
-  /// isTemplateParameter - Determines whether this declartion is a
+  /// isTemplateParameter - Determines whether this declaration is a
   /// template parameter.
   bool isTemplateParameter() const;
+  
+  /// isTemplateParameter - Determines whether this declaration is a
+  /// template parameter pack.
+  bool isTemplateParameterPack() const;
 
   // Implement isa/cast/dyncast/etc.
   static bool classof(const Decl *) { return true; }

Modified: vendor/clang/dist/include/clang/AST/DeclTemplate.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclTemplate.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/DeclTemplate.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -17,6 +17,7 @@
 #include "clang/AST/DeclCXX.h"
 #include "llvm/ADT/APSInt.h"
 #include "llvm/ADT/FoldingSet.h"
+#include "llvm/ADT/PointerUnion.h"
 
 namespace clang {
 
@@ -29,6 +30,10 @@ class TemplateTypeParmDecl;
 class NonTypeTemplateParmDecl;
 class TemplateTemplateParmDecl;
 
+/// \brief Stores a template parameter of any kind.
+typedef llvm::PointerUnion3<TemplateTypeParmDecl*, NonTypeTemplateParmDecl*,
+                            TemplateTemplateParmDecl*> TemplateParameter;
+
 /// TemplateParameterList - Stores a list of template parameters for a
 /// TemplateDecl and its derived classes.
 class TemplateParameterList {
@@ -69,6 +74,11 @@ public:
 
   unsigned size() const { return NumParams; }
 
+  Decl* getParam(unsigned Idx) {
+    assert(Idx < size() && "Template parameter index out-of-range");
+    return begin()[Idx];
+  }
+
   const Decl* getParam(unsigned Idx) const {
     assert(Idx < size() && "Template parameter index out-of-range");
     return begin()[Idx];
@@ -77,7 +87,7 @@ public:
   /// \btief Returns the minimum number of arguments needed to form a
   /// template specialization. This may be fewer than the number of
   /// template parameters, if some of the parameters have default
-  /// arguments.
+  /// arguments or if there is a parameter pack.
   unsigned getMinRequiredArguments() const;
 
   SourceLocation getTemplateLoc() const { return TemplateLoc; }
@@ -223,6 +233,9 @@ class TemplateTypeParmDecl : public Type
   /// default argument.
   bool InheritedDefault : 1;
 
+  /// \brief Whether this is a parameter pack.
+  bool ParameterPack : 1;
+
   /// \brief The location of the default argument, if any.
   SourceLocation DefaultArgumentLoc;
 
@@ -230,16 +243,17 @@ class TemplateTypeParmDecl : public Type
   QualType DefaultArgument;
 
   TemplateTypeParmDecl(DeclContext *DC, SourceLocation L, IdentifierInfo *Id, 
-                       bool Typename, QualType Type)
+                       bool Typename, QualType Type, bool ParameterPack)
     : TypeDecl(TemplateTypeParm, DC, L, Id), Typename(Typename),
-      InheritedDefault(false), DefaultArgument() { 
+      InheritedDefault(false), ParameterPack(ParameterPack), DefaultArgument() { 
     TypeForDecl = Type.getTypePtr();
   }
 
 public:
   static TemplateTypeParmDecl *Create(ASTContext &C, DeclContext *DC,
                                       SourceLocation L, unsigned D, unsigned P,
-                                      IdentifierInfo *Id, bool Typename);
+                                      IdentifierInfo *Id, bool Typename,
+                                      bool ParameterPack);
 
   /// \brief Whether this template type parameter was declared with
   /// the 'typename' keyword. If not, it was declared with the 'class'
@@ -270,6 +284,9 @@ public:
     InheritedDefault = Inherited;
   }
 
+  /// \brief Returns whether this is a parameter pack.
+  bool isParameterPack() const { return ParameterPack; }
+
   // Implement isa/cast/dyncast/etc.
   static bool classof(const Decl *D) {
     return D->getKind() == TemplateTypeParm;
@@ -575,17 +592,38 @@ public:
 
 /// \brief A helper class for making template argument lists.
 class TemplateArgumentListBuilder {
+  /// Args - contains the template arguments.
   llvm::SmallVector<TemplateArgument, 16> Args;
+  
+  llvm::SmallVector<unsigned, 32> Indices;
 
   ASTContext &Context;
+  
+  /// isAddingFromParameterPack - Returns whether we're adding arguments from
+  /// a parameter pack.
+  bool isAddingFromParameterPack() const { return Indices.size() % 2; }
+  
 public:
   TemplateArgumentListBuilder(ASTContext &Context) : Context(Context) { }
   
-  // FIXME: Should use the  index array size.
-  size_t size() const { return Args.size(); }
+  size_t size() const { 
+    assert(!isAddingFromParameterPack() && 
+           "Size is not valid when adding from a parameter pack");
+    
+    return Indices.size() / 2;
+  }
+  
   size_t flatSize() const { return Args.size(); }
 
   void push_back(const TemplateArgument& Arg);
+  
+  /// BeginParameterPack - Start adding arguments from a parameter pack.
+  void BeginParameterPack();
+  
+  /// EndParameterPack - Finish adding arguments from a parameter pack.
+  void EndParameterPack();
+  
+  const TemplateArgument *getFlatArgumentList() const { return Args.data(); }
   TemplateArgument *getFlatArgumentList() { return Args.data(); }
 };
 
@@ -733,6 +771,7 @@ public:
   static void 
   Profile(llvm::FoldingSetNodeID &ID, const TemplateArgument *TemplateArgs, 
           unsigned NumTemplateArgs) {
+    ID.AddInteger(NumTemplateArgs);
     for (unsigned Arg = 0; Arg != NumTemplateArgs; ++Arg)
       TemplateArgs[Arg].Profile(ID);
   }

Modified: vendor/clang/dist/include/clang/AST/Stmt.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/Stmt.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/AST/Stmt.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -709,14 +709,14 @@ class DoStmt : public Stmt {
   Stmt* SubExprs[END_EXPR];
   SourceLocation DoLoc;
   SourceLocation WhileLoc;
+  SourceLocation RParenLoc;  // Location of final ')' in do stmt condition.
 
 public:
-  DoStmt(Stmt *body, Expr *cond, SourceLocation DL, SourceLocation WL) 
-    : Stmt(DoStmtClass), DoLoc(DL), WhileLoc(WL) {
+  DoStmt(Stmt *body, Expr *cond, SourceLocation DL, SourceLocation WL,
+         SourceLocation RP)
+    : Stmt(DoStmtClass), DoLoc(DL), WhileLoc(WL), RParenLoc(RP) {
     SubExprs[COND] = reinterpret_cast<Stmt*>(cond);
     SubExprs[BODY] = body;
-    DoLoc = DL;
-    WhileLoc = WL;
   }  
 
   /// \brief Build an empty do-while statement.
@@ -734,8 +734,11 @@ public:
   SourceLocation getWhileLoc() const { return WhileLoc; }
   void setWhileLoc(SourceLocation L) { WhileLoc = L; }
 
+  SourceLocation getRParenLoc() const { return RParenLoc; }
+  void setRParenLoc(SourceLocation L) { RParenLoc = L; }
+
   virtual SourceRange getSourceRange() const { 
-    return SourceRange(DoLoc, SubExprs[BODY]->getLocEnd()); 
+    return SourceRange(DoLoc, RParenLoc); 
   }
   static bool classof(const Stmt *T) { 
     return T->getStmtClass() == DoStmtClass; 

Modified: vendor/clang/dist/include/clang/Analysis/AnalysisDiagnostic.h
==============================================================================
--- vendor/clang/dist/include/clang/Analysis/AnalysisDiagnostic.h	Sun Jun 14 09:23:33 2009	(r194178)
+++ vendor/clang/dist/include/clang/Analysis/AnalysisDiagnostic.h	Sun Jun 14 09:24:02 2009	(r194179)
@@ -15,7 +15,7 @@
 namespace clang {
   namespace diag { 
     enum {
-#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP) ENUM,
+#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,SFINAE) ENUM,
 #define ANALYSISSTART
 #include "clang/Basic/DiagnosticAnalysisKinds.inc"
 #undef DIAG

Added: vendor/clang/dist/include/clang/Basic/Builtins.def
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/clang/dist/include/clang/Basic/Builtins.def	Sun Jun 14 09:24:02 2009	(r194179)
@@ -0,0 +1,407 @@
+//===--- Builtins.def - Builtin function info database ----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the standard builtin function database.  Users of this file
+// must define the BUILTIN macro to make use of this information.
+//
+//===----------------------------------------------------------------------===//
+
+// FIXME: this needs to be the full list supported by GCC.  Right now, I'm just
+// adding stuff on demand.
+//
+// FIXME: This should really be a .td file, but that requires modifying tblgen.
+// Perhaps tblgen should have plugins.
+
+// The first value provided to the macro specifies the function name of the
+// builtin, and results in a clang::builtin::BIXX enum value for XX.
+
+// The second value provided to the macro specifies the type of the function
+// (result value, then each argument) as follows:
+//  v -> void
+//  b -> boolean
+//  c -> char
+//  s -> short
+//  i -> int
+//  f -> float
+//  d -> double
+//  z -> size_t
+//  F -> constant CFString
+//  a -> __builtin_va_list
+//  A -> "reference" to __builtin_va_list
+//  V -> Vector, following num elements and a base type.
+//  P -> FILE
+//  . -> "...".  This may only occur at the end of the function list.
+//
+// Types maybe prefixed with the following modifiers:
+//  L   -> long (e.g. Li for 'long int')
+//  LL  -> long long
+//  LLL -> __int128_t (e.g. LLLi)
+//  S   -> signed
+//  U   -> unsigned
+//
+// Types may be postfixed with the following modifiers:
+// * -> pointer
+// & -> reference
+// C -> const
+
+// The third value provided to the macro specifies information about attributes
+// of the function.  These must be kept in sync with the predicates in the
+// Builtin::Context class.  Currently we have:
+//  n -> nothrow
+//  c -> const
+//  F -> this is a libc/libm function with a '__builtin_' prefix added.
+//  f -> this is a libc/libm function without the '__builtin_' prefix. It can
+//       be followed by ':headername:' to state which header this function
+//       comes from.
+//  p:N: -> this is a printf-like function whose Nth argument is the format 
+//          string.
+//  P:N: -> similar to the p:N: attribute, but the function is like vprintf
+//          in that it accepts its arguments as a va_list rather than 
+//          through an ellipsis
+//  e -> const, but only when -fmath-errno=0
+//  FIXME: gcc has nonnull
+
+#if defined(BUILTIN) && !defined(LIBBUILTIN)
+#  define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) BUILTIN(ID, TYPE, ATTRS)
+#endif
+
+// Standard libc/libm functions:
+BUILTIN(__builtin_huge_val, "d", "nc")
+BUILTIN(__builtin_huge_valf, "f", "nc")
+BUILTIN(__builtin_huge_vall, "Ld", "nc")
+BUILTIN(__builtin_inf  , "d"   , "nc")
+BUILTIN(__builtin_inff , "f"   , "nc")
+BUILTIN(__builtin_infl , "Ld"  , "nc")
+BUILTIN(__builtin_nan,  "dcC*" , "ncF")
+BUILTIN(__builtin_nanf, "fcC*" , "ncF")
+BUILTIN(__builtin_nanl, "LdcC*", "ncF")
+BUILTIN(__builtin_nans,  "dcC*" , "ncF")
+BUILTIN(__builtin_nansf, "fcC*" , "ncF")
+BUILTIN(__builtin_nansl, "LdcC*", "ncF")
+BUILTIN(__builtin_abs  , "ii"  , "ncF")
+BUILTIN(__builtin_fabs , "dd"  , "ncF")
+BUILTIN(__builtin_fabsf, "ff"  , "ncF")
+BUILTIN(__builtin_fabsl, "LdLd", "ncF")
+BUILTIN(__builtin_copysign, "ddd", "ncF")
+BUILTIN(__builtin_copysignf, "fff", "ncF")
+BUILTIN(__builtin_copysignl, "LdLdLd", "ncF")
+BUILTIN(__builtin_powi , "ddi"  , "nc")
+BUILTIN(__builtin_powif, "ffi"  , "nc")
+BUILTIN(__builtin_powil, "LdLdi", "nc")
+
+// FP Comparisons.
+BUILTIN(__builtin_isgreater     , "i.", "nc")
+BUILTIN(__builtin_isgreaterequal, "i.", "nc")
+BUILTIN(__builtin_isless        , "i.", "nc")
+BUILTIN(__builtin_islessequal   , "i.", "nc")
+BUILTIN(__builtin_islessgreater , "i.", "nc")
+BUILTIN(__builtin_isunordered   , "i.", "nc")
+
+// Builtins for arithmetic.
+BUILTIN(__builtin_clz  , "iUi"  , "nc")
+BUILTIN(__builtin_clzl , "iULi" , "nc")
+BUILTIN(__builtin_clzll, "iULLi", "nc")
+// TODO: int clzimax(uintmax_t)
+BUILTIN(__builtin_ctz  , "iUi"  , "nc")
+BUILTIN(__builtin_ctzl , "iULi" , "nc")
+BUILTIN(__builtin_ctzll, "iULLi", "nc")
+// TODO: int ctzimax(uintmax_t)
+BUILTIN(__builtin_ffs  , "iUi"  , "nc")
+BUILTIN(__builtin_ffsl , "iULi" , "nc")
+BUILTIN(__builtin_ffsll, "iULLi", "nc")
+BUILTIN(__builtin_parity  , "iUi"  , "nc")
+BUILTIN(__builtin_parityl , "iULi" , "nc")
+BUILTIN(__builtin_parityll, "iULLi", "nc")
+BUILTIN(__builtin_popcount  , "iUi"  , "nc")
+BUILTIN(__builtin_popcountl , "iULi" , "nc")
+BUILTIN(__builtin_popcountll, "iULLi", "nc")
+
+// FIXME: These type signatures are not correct for targets with int != 32-bits
+// or with ULL != 64-bits.
+BUILTIN(__builtin_bswap32, "UiUi", "nc")
+BUILTIN(__builtin_bswap64, "ULLiULLi", "nc")
+
+// Random GCC builtins
+BUILTIN(__builtin_constant_p, "Us.", "nc")
+BUILTIN(__builtin_classify_type, "i.", "nc")
+BUILTIN(__builtin___CFStringMakeConstantString, "FC*cC*", "nc")
+BUILTIN(__builtin_va_start, "vA.", "n")
+BUILTIN(__builtin_va_end, "vA", "n")
+BUILTIN(__builtin_va_copy, "vAA", "n")
+BUILTIN(__builtin_stdarg_start, "vA.", "n")
+BUILTIN(__builtin_bcmp, "iv*v*z", "n")
+BUILTIN(__builtin_bcopy, "vv*v*z", "n")
+BUILTIN(__builtin_bzero, "vv*z", "n")
+BUILTIN(__builtin_memcmp, "ivC*vC*z", "nF")
+BUILTIN(__builtin_memcpy, "v*v*vC*z", "nF")
+BUILTIN(__builtin_memmove, "v*v*vC*z", "nF")
+BUILTIN(__builtin_mempcpy, "v*v*vC*z", "nF")
+BUILTIN(__builtin_memset, "v*v*iz", "nF")
+BUILTIN(__builtin_stpcpy, "c*c*cC*", "nF")
+BUILTIN(__builtin_stpncpy, "c*c*cC*z", "nF")
+BUILTIN(__builtin_strcasecmp, "icC*cC*", "nF")
+BUILTIN(__builtin_strcat, "c*c*cC*", "nF")
+BUILTIN(__builtin_strchr, "c*cC*i", "nF")
+BUILTIN(__builtin_strcmp, "icC*cC*", "nF")
+BUILTIN(__builtin_strcpy, "c*c*cC*", "nF")
+BUILTIN(__builtin_strcspn, "zcC*cC*", "nF")
+BUILTIN(__builtin_strdup, "c*cC*", "nF")
+BUILTIN(__builtin_strlen, "zcC*", "nF")
+BUILTIN(__builtin_strncasecmp, "icC*cC*z", "nF")
+BUILTIN(__builtin_strncat, "c*c*cC*z", "nF")
+BUILTIN(__builtin_strncmp, "icC*cC*z", "nF")
+BUILTIN(__builtin_strncpy, "c*c*cC*z", "nF")
+BUILTIN(__builtin_strndup, "c*cC*z", "nF")
+BUILTIN(__builtin_strpbrk, "c*cC*cC*", "nF")
+BUILTIN(__builtin_strrchr, "c*cC*i", "nF")
+BUILTIN(__builtin_strspn, "zcC*cC*", "nF")
+BUILTIN(__builtin_strstr, "c*cC*cC*", "nF")
+BUILTIN(__builtin_return_address, "v*Ui", "n")
+BUILTIN(__builtin_extract_return_addr, "v*v*", "n")
+BUILTIN(__builtin_frame_address, "v*Ui", "n")
+BUILTIN(__builtin_flt_rounds, "i", "nc")
+BUILTIN(__builtin_setjmp, "iv**", "")
+BUILTIN(__builtin_longjmp, "vv**i", "")
+BUILTIN(__builtin_unwind_init, "v", "")
+
+// GCC Object size checking builtins
+BUILTIN(__builtin_object_size, "zv*i", "n")
+BUILTIN(__builtin___memcpy_chk, "v*v*vC*zz", "nF")
+BUILTIN(__builtin___memmove_chk, "v*v*vC*zz", "nF")
+BUILTIN(__builtin___mempcpy_chk, "v*v*vC*zz", "nF")
+BUILTIN(__builtin___memset_chk, "v*v*izz", "nF")
+BUILTIN(__builtin___stpcpy_chk, "c*c*cC*z", "nF")
+BUILTIN(__builtin___strcat_chk, "c*c*cC*z", "nF")
+BUILTIN(__builtin___strcpy_chk, "c*c*cC*z", "nF")
+BUILTIN(__builtin___strncat_chk, "c*c*cC*zz", "nF")
+BUILTIN(__builtin___strncpy_chk, "c*c*cC*zz", "nF")
+BUILTIN(__builtin___snprintf_chk, "ic*zizcC*.", "Fp:4:")
+BUILTIN(__builtin___sprintf_chk, "ic*izcC*.", "Fp:3:")
+BUILTIN(__builtin___vsnprintf_chk, "ic*zizcC*a", "FP:4:")
+BUILTIN(__builtin___vsprintf_chk, "ic*izcC*a", "FP:3:")
+BUILTIN(__builtin___fprintf_chk, "iP*icC*.", "Fp:2:")
+BUILTIN(__builtin___printf_chk, "iicC*.", "Fp:1:")
+BUILTIN(__builtin___vfprintf_chk, "iP*icC*a", "FP:2:")
+BUILTIN(__builtin___vprintf_chk, "iicC*a", "FP:1:")
+
+BUILTIN(__builtin_expect, "iii"   , "nc")
+BUILTIN(__builtin_prefetch, "vvC*.", "nc")
+BUILTIN(__builtin_trap, "v", "n")
+
+BUILTIN(__builtin_shufflevector, "v."   , "nc")
+
+BUILTIN(__builtin_alloca, "v*z"   , "n")
+
+// "Overloaded" Atomic operator builtins.  These are overloaded to support data
+// types of i8, i16, i32, i64, and i128.  The front-end sees calls to the
+// non-suffixed version of these (which has a bogus type) and transforms them to
+// the right overloaded version in Sema (plus casts).
+
+// FIXME: These assume that char -> i8, short -> i16, int -> i32,
+// long long -> i64.
+
+BUILTIN(__sync_fetch_and_add, "v.", "")
+BUILTIN(__sync_fetch_and_add_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_add_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_add_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_add_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_add_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_fetch_and_sub, "v.", "")
+BUILTIN(__sync_fetch_and_sub_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_sub_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_sub_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_sub_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_sub_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_fetch_and_or, "v.", "")
+BUILTIN(__sync_fetch_and_or_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_or_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_or_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_or_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_or_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_fetch_and_and, "v.", "")
+BUILTIN(__sync_fetch_and_and_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_and_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_and_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_and_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_and_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_fetch_and_xor, "v.", "")
+BUILTIN(__sync_fetch_and_xor_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_xor_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_xor_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_xor_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_xor_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_fetch_and_nand, "v.", "")
+BUILTIN(__sync_fetch_and_nand_1, "cc*c.", "n")
+BUILTIN(__sync_fetch_and_nand_2, "ss*s.", "n")
+BUILTIN(__sync_fetch_and_nand_4, "ii*i.", "n")
+BUILTIN(__sync_fetch_and_nand_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_fetch_and_nand_16, "LLLiLLLi*LLLi.", "n")
+
+
+BUILTIN(__sync_add_and_fetch, "v.", "")
+BUILTIN(__sync_add_and_fetch_1, "cc*c.", "n")
+BUILTIN(__sync_add_and_fetch_2, "ss*s.", "n")
+BUILTIN(__sync_add_and_fetch_4, "ii*i.", "n")
+BUILTIN(__sync_add_and_fetch_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_add_and_fetch_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_sub_and_fetch, "v.", "")
+BUILTIN(__sync_sub_and_fetch_1, "cc*c.", "n")
+BUILTIN(__sync_sub_and_fetch_2, "ss*s.", "n")
+BUILTIN(__sync_sub_and_fetch_4, "ii*i.", "n")
+BUILTIN(__sync_sub_and_fetch_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_sub_and_fetch_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_or_and_fetch, "v.", "")
+BUILTIN(__sync_or_and_fetch_1, "cc*c.", "n")
+BUILTIN(__sync_or_and_fetch_2, "ss*s.", "n")
+BUILTIN(__sync_or_and_fetch_4, "ii*i.", "n")
+BUILTIN(__sync_or_and_fetch_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_or_and_fetch_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_and_and_fetch, "v.", "")
+BUILTIN(__sync_and_and_fetch_1, "cc*c.", "n")
+BUILTIN(__sync_and_and_fetch_2, "ss*s.", "n")
+BUILTIN(__sync_and_and_fetch_4, "ii*i.", "n")
+BUILTIN(__sync_and_and_fetch_8, "LLiLLi*LLi.", "n")
+BUILTIN(__sync_and_and_fetch_16, "LLLiLLLi*LLLi.", "n")
+
+BUILTIN(__sync_xor_and_fetch, "v.", "")
+BUILTIN(__sync_xor_and_fetch_1, "cc*c.", "n")
+BUILTIN(__sync_xor_and_fetch_2, "ss*s.", "n")

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-vendor mailing list