From owner-svn-src-all@FreeBSD.ORG Sun Jun 14 09:24:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 171D51065680; Sun, 14 Jun 2009 09:24:04 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 00AA68FC22; Sun, 14 Jun 2009 09:24:04 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n5E9O341041710; Sun, 14 Jun 2009 09:24:04 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n5E9O3Z9041696; Sun, 14 Jun 2009 09:24:03 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200906140924.n5E9O3Z9041696@svn.freebsd.org> From: Ed Schouten Date: Sun, 14 Jun 2009 09:24:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: 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... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Jun 2009 09:24:04 -0000 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 = ""; tabWidth = 2; }; 1A649E1D0F9599D9005B965E /* CGBlocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CGBlocks.h; path = lib/CodeGen/CGBlocks.h; sourceTree = ""; }; 1A649E1E0F9599DA005B965E /* CGCXX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CGCXX.h; path = lib/CodeGen/CGCXX.h; sourceTree = ""; }; - 1A68BC110D0CADDD001A28C8 /* PPCBuiltins.def */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text; name = PPCBuiltins.def; path = clang/AST/PPCBuiltins.def; sourceTree = ""; tabWidth = 2; }; - 1A68BC120D0CADDD001A28C8 /* TargetBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = TargetBuiltins.h; path = clang/AST/TargetBuiltins.h; sourceTree = ""; tabWidth = 2; }; - 1A68BC130D0CADDD001A28C8 /* X86Builtins.def */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text; name = X86Builtins.def; path = clang/AST/X86Builtins.def; sourceTree = ""; tabWidth = 2; }; 1A6FE7080FD6F85800E00CA9 /* CGCXXTemp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGCXXTemp.cpp; path = lib/CodeGen/CGCXXTemp.cpp; sourceTree = ""; tabWidth = 2; }; 1A7019E90F79BC1100FEC4D1 /* DiagnosticAnalysisKinds.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DiagnosticAnalysisKinds.td; sourceTree = ""; }; 1A7019EA0F79BC1100FEC4D1 /* DiagnosticASTKinds.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DiagnosticASTKinds.td; sourceTree = ""; }; @@ -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 = ""; tabWidth = 2; }; DE34621C0AFEB19B00DBC861 /* StmtPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = StmtPrinter.cpp; path = lib/AST/StmtPrinter.cpp; sourceTree = ""; tabWidth = 2; }; DE3464210B03040900DBC861 /* Type.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = Type.h; path = clang/AST/Type.h; sourceTree = ""; tabWidth = 2; }; + DE37251C0FE4818000CF2CC2 /* Builtins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Builtins.h; sourceTree = ""; }; + DE37252A0FE4818F00CF2CC2 /* Builtins.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Builtins.def; sourceTree = ""; }; + DE37252D0FE481AD00CF2CC2 /* Builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Builtins.cpp; sourceTree = ""; }; + DE3725310FE4822800CF2CC2 /* TargetBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetBuiltins.h; sourceTree = ""; }; + DE3725320FE4826C00CF2CC2 /* BuiltinsX86.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BuiltinsX86.def; sourceTree = ""; }; + DE3725330FE4827200CF2CC2 /* BuiltinsPPC.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BuiltinsPPC.def; sourceTree = ""; }; DE38CD4E0D794CF900A273B6 /* CGObjCRuntime.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = CGObjCRuntime.h; path = lib/CodeGen/CGObjCRuntime.h; sourceTree = ""; tabWidth = 2; }; DE38CD4F0D794D0100A273B6 /* CGObjCGNU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGObjCGNU.cpp; path = lib/CodeGen/CGObjCGNU.cpp; sourceTree = ""; tabWidth = 2; }; DE38CF260D8C9E6C00A273B6 /* DeclObjC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = DeclObjC.cpp; path = lib/AST/DeclObjC.cpp; sourceTree = ""; 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 = ""; }; DED626C80AE0C065001E80A4 /* TargetInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; path = TargetInfo.cpp; sourceTree = ""; tabWidth = 2; }; DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = Decl.cpp; path = lib/AST/Decl.cpp; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; - DED676D00B6C786700AAD4A3 /* Builtins.def */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = text; name = Builtins.def; path = clang/AST/Builtins.def; sourceTree = ""; tabWidth = 2; }; - DED676F90B6C797B00AAD4A3 /* Builtins.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = Builtins.h; path = clang/AST/Builtins.h; sourceTree = ""; tabWidth = 2; }; - DED677C80B6C854100AAD4A3 /* Builtins.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = Builtins.cpp; path = lib/AST/Builtins.cpp; sourceTree = ""; tabWidth = 2; }; DED7D7310A524295003AD0FB /* Diagnostic.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = Diagnostic.h; sourceTree = ""; tabWidth = 2; }; DED7D7330A524295003AD0FB /* FileManager.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = FileManager.h; sourceTree = ""; tabWidth = 2; }; DED7D7350A524295003AD0FB /* SourceLocation.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = SourceLocation.h; sourceTree = ""; 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 {
  • Introduction
  • +
  • Feature Checking Macros
  • Builtin Macros
  • Vectors and Extended Vectors
  • Blocks
  • @@ -45,12 +46,73 @@ td {

    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 GCC manual for more information on these extensions.

    +

    Feature Checking Macros

    + + +

    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".

    + + +

    __has_builtin

    + + +

    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:

    + +
    +
    +#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
    +...
    +
    +
    + + + +

    __has_feature

    + + +

    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:

    + +
    +
    +#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
    +...
    +
    +
    + +

    The feature tag is described along with the language feature below.

    + + +

    Builtin Macros

    @@ -64,6 +126,8 @@ more information on these extensions.

    __builtin_shufflevector.

    +

    Query for this feature with __has_feature(attribute_ext_vector_type).

    +

    Blocks

    @@ -73,6 +137,9 @@ href="BlockLanguageSpec.txt">BlockLangua details for the clang implementation are in BlockImplementation.txt.

    + +

    Query for this feature with __has_feature(blocks).

    +

    Function Overloading in C

    @@ -171,6 +238,9 @@ caveats to this use of name mangling:

+

Query for this feature with __has_feature(attribute_overloadable).

+ +

Builtin Functions

@@ -306,11 +376,11 @@ positives due to false paths) by marking with this attribute.

While useful, noreturn 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 -analyzer_noreturn attribute allows one to annotate such functions as -being interpreted as "no return" 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 analyzer_noreturn attribute allows one to annotate such functions +as being interpreted as "no return" functions by the analyzer (thus pruning bogus paths) but will not affect compilation (as in the case of noreturn).

@@ -320,7 +390,10 @@ placed at the end of function prototypes
   void foo() __attribute__((analyzer_noreturn));
-

+
+ +

Query for this feature with __has_feature(attribute_analyzer_noreturn).

+ 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 identifier table.

Types Block

@@ -296,8 +296,8 @@ declaration is described.

Declarations in Clang's abstract syntax trees are stored hierarchically. At the top of the hierarchy is the translation unit (TranslationUnitDecl), 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 declaration context, as represented by the DeclContext 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:

@@ -410,7 +410,8 @@ contains:

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 IdentifierInfo structure will have the same contents it would have after parsing the headers in the precompiled header.

+identifier table. If an identifier is found, its contents (macro +definitions, flags, top-level declarations, etc.) will be deserialized, at which point the corresponding IdentifierInfo structure will have the same contents it would have after parsing the headers in the precompiled header.

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.

for headers that are directly included within a source file. For example:

-  $ 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.
 
  • clang does not support nested functions; this is a complex feature which is infrequently used, so it is unlikely to be implemented anytime soon.
  • -
  • 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.
  • -
  • clang does not support global register variables, this is unlikely -to be implemented soon.
  • +to be implemented soon because it requires additional LLVM backend support. +
  • 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.
  • +
  • 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.
  • + +
  • 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.
  • +

    This is not a complete list; if you find an unsupported extension @@ -589,16 +597,32 @@ bug-reporting guidelines somewhere?).

    Intentionally unsupported GCC extensions -

    clang does not support the gcc extension that allows variable-length arrays +

      + +
    • 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.

      +extension appears to be rarely used.
    • -

      clang does not support duplicate definitions of a function where one is +

    • 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.

      +translation units.
    • + +
    • 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.
    • + +
    • clang does not support multiple alternative constraints in inline asm; this +is an extremely obscure feature which would be complicated to implement +correctly.
    • + +
    • clang does not support __builtin_apply and friends; this extension is +extremely obscure and difficult to implement reliably.
    • + +

    Microsoft extensions

    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 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 + }; + + /// 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 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 Args; + + llvm::SmallVector 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(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 ***