From owner-svn-src-vendor@FreeBSD.ORG Mon Dec 14 22:07:33 2009 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EAF0A106568D; Mon, 14 Dec 2009 22:07:33 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D6EDB8FC15; Mon, 14 Dec 2009 22:07:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBEM7XC2040052; Mon, 14 Dec 2009 22:07:33 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBEM7Xn3040028; Mon, 14 Dec 2009 22:07:33 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200912142207.nBEM7Xn3040028@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 14 Dec 2009 22:07:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r200549 - in vendor-sys/acpica/dist: . compiler debugger disassembler dispatcher events executer include namespace parser resources tools/acpiexec utilities X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Dec 2009 22:07:34 -0000 Author: jkim Date: Mon Dec 14 22:07:33 2009 New Revision: 200549 URL: http://svn.freebsd.org/changeset/base/200549 Log: Import ACPICA 20091214. Modified: vendor-sys/acpica/dist/changes.txt vendor-sys/acpica/dist/compiler/aslcompile.c vendor-sys/acpica/dist/debugger/dbutils.c vendor-sys/acpica/dist/disassembler/dmwalk.c vendor-sys/acpica/dist/dispatcher/dsmethod.c vendor-sys/acpica/dist/dispatcher/dswload.c vendor-sys/acpica/dist/events/evregion.c vendor-sys/acpica/dist/events/evrgnini.c vendor-sys/acpica/dist/events/evxface.c vendor-sys/acpica/dist/events/evxfevnt.c vendor-sys/acpica/dist/events/evxfregn.c vendor-sys/acpica/dist/executer/exmutex.c vendor-sys/acpica/dist/include/acnamesp.h vendor-sys/acpica/dist/include/acobject.h vendor-sys/acpica/dist/include/acoutput.h vendor-sys/acpica/dist/include/acpixf.h vendor-sys/acpica/dist/namespace/nsaccess.c vendor-sys/acpica/dist/namespace/nsdump.c vendor-sys/acpica/dist/namespace/nseval.c vendor-sys/acpica/dist/namespace/nsnames.c vendor-sys/acpica/dist/namespace/nspredef.c vendor-sys/acpica/dist/namespace/nsrepair.c vendor-sys/acpica/dist/namespace/nsrepair2.c vendor-sys/acpica/dist/namespace/nsutils.c vendor-sys/acpica/dist/namespace/nsxfeval.c vendor-sys/acpica/dist/namespace/nsxfname.c vendor-sys/acpica/dist/namespace/nsxfobj.c vendor-sys/acpica/dist/parser/psxface.c vendor-sys/acpica/dist/resources/rsxface.c vendor-sys/acpica/dist/tools/acpiexec/aecommon.h vendor-sys/acpica/dist/tools/acpiexec/aehandlers.c vendor-sys/acpica/dist/tools/acpiexec/aemain.c vendor-sys/acpica/dist/utilities/utcopy.c Modified: vendor-sys/acpica/dist/changes.txt ============================================================================== --- vendor-sys/acpica/dist/changes.txt Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/changes.txt Mon Dec 14 22:07:33 2009 (r200549) @@ -1,4 +1,71 @@ ---------------------------------------- +14 December 2009. Summary of changes for version 20091214: + +This release is available at www.acpica.org/downloads + +1) ACPI CA Core Subsystem: + +Enhanced automatic data type conversions for predefined name repairs. This +change expands the automatic repairs/conversions for predefined name return +values to make Integers, Strings, and Buffers fully interchangeable. Also, a +Buffer can be converted to a Package of Integers if necessary. The nsrepair.c +module was completely restructured. Lin Ming, Bob Moore. + +Implemented automatic removal of null package elements during predefined name +repairs. This change will automatically remove embedded and trailing NULL +package elements from returned package objects that are defined to contain a +variable number of sub-packages. The driver is then presented with a package +with no null elements to deal with. ACPICA BZ 819. + +Implemented a repair for the predefined _FDE and _GTM names. The expected +return value for both names is a Buffer of 5 DWORDs. This repair fixes two +possible problems (both seen in the field), where a package of integers is +returned, or a buffer of BYTEs is returned. With assistance from Jung-uk Kim. + +Implemented additional module-level code support. This change will properly +execute module-level code that is not at the root of the namespace (under a +Device object, etc.). Now executes the code within the current scope instead +of the root. ACPICA BZ 762. Lin Ming. + +Fixed possible mutex acquisition errors when running _REG methods. Fixes a +problem where mutex errors can occur when running a _REG method that is in +the same scope as a method-defined operation region or an operation region +under a module-level IF block. This type of code is rare, so the problem has +not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore. + +Fixed a possible memory leak during module-level code execution. An object +could be leaked for each block of executed module-level code if the +interpreter slack mode is enabled This change deletes any implicitly returned +object from the module-level code block. Lin Ming. + +Removed messages for successful predefined repair(s). The repair mechanism +was considered too wordy. Now, messages are only unconditionally emitted if +the return object cannot be repaired. Existing messages for successful +repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827. + +Example Code and Data Size: These are the sizes for the OS-independent +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The +debug version of the code includes the debug output trace mechanism and has a +much larger code and data size. + + Previous Release: + Non-Debug Version: 86.6K Code, 18.2K Data, 104.8K Total + Debug Version: 162.7K Code, 50.8K Data, 213.5K Total + Current Release: + Non-Debug Version: 87.0K Code, 18.0K Data, 105.0K Total + Debug Version: 163.4K Code, 50.8K Data, 214.2K Total + +2) iASL Compiler/Disassembler and Tools: + +iASL: Fixed a regression introduced in 20091112 where intermediate .SRC files +were no longer automatically removed at the termination of the compile. + +acpiexec: Implemented the -f option to specify default region fill value. +This option specifies the value used to initialize buffers that simulate +operation regions. Default value is zero. Useful for debugging problems that +depend on a specific initial value for a region or field. + +---------------------------------------- 12 November 2009. Summary of changes for version 20091112: This release is available at www.acpica.org/downloads Modified: vendor-sys/acpica/dist/compiler/aslcompile.c ============================================================================== --- vendor-sys/acpica/dist/compiler/aslcompile.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/compiler/aslcompile.c Mon Dec 14 22:07:33 2009 (r200549) @@ -895,20 +895,6 @@ CmCleanupAndExit ( 10) / Gbl_NsLookupCount); } - /* - * TBD: SourceOutput should be .TMP, then rename if we want to keep it? - */ - if (!Gbl_SourceOutputFlag) - { - remove (Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename); - } - - /* Delete AML file if there are errors */ - - if ((Gbl_ExceptionCount[ASL_ERROR] > 0) && (!Gbl_IgnoreErrors)) - { - remove (Gbl_Files[ASL_FILE_AML_OUTPUT].Filename); - } if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT) { @@ -923,6 +909,27 @@ CmCleanupAndExit ( { FlCloseFile (i); } + + /* Delete AML file if there are errors */ + + if ((Gbl_ExceptionCount[ASL_ERROR] > 0) && (!Gbl_IgnoreErrors)) + { + remove (Gbl_Files[ASL_FILE_AML_OUTPUT].Filename); + } + + /* + * Delete intermediate ("combined") source file (if -ls flag not set) + * + * TBD: SourceOutput should be .TMP, then rename if we want to keep it? + */ + if (!Gbl_SourceOutputFlag) + { + if (remove (Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename)) + { + printf ("Could not remove SRC file, %s\n", + Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename); + } + } } Modified: vendor-sys/acpica/dist/debugger/dbutils.c ============================================================================== --- vendor-sys/acpica/dist/debugger/dbutils.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/debugger/dbutils.c Mon Dec 14 22:07:33 2009 (r200549) @@ -275,6 +275,10 @@ AcpiDbDumpExternalObject ( AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length); if (ObjDesc->Buffer.Length) { + if (ObjDesc->Buffer.Length > 16) + { + AcpiOsPrintf ("\n"); + } AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT); } Modified: vendor-sys/acpica/dist/disassembler/dmwalk.c ============================================================================== --- vendor-sys/acpica/dist/disassembler/dmwalk.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/disassembler/dmwalk.c Mon Dec 14 22:07:33 2009 (r200549) @@ -160,7 +160,6 @@ AcpiDmBlockType ( ACPI_PARSE_OBJECT *Op); - /******************************************************************************* * * FUNCTION: AcpiDmDisassemble Modified: vendor-sys/acpica/dist/dispatcher/dsmethod.c ============================================================================== --- vendor-sys/acpica/dist/dispatcher/dsmethod.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/dispatcher/dsmethod.c Mon Dec 14 22:07:33 2009 (r200549) @@ -519,7 +519,7 @@ AcpiDsCallControlMethod ( if (ObjDesc->Method.MethodFlags & AML_METHOD_INTERNAL_ONLY) { - Status = ObjDesc->Method.Implementation (NextWalkState); + Status = ObjDesc->Method.Extra.Implementation (NextWalkState); if (Status == AE_OK) { Status = AE_CTRL_TERMINATE; Modified: vendor-sys/acpica/dist/dispatcher/dswload.c ============================================================================== --- vendor-sys/acpica/dist/dispatcher/dswload.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/dispatcher/dswload.c Mon Dec 14 22:07:33 2009 (r200549) @@ -296,18 +296,19 @@ AcpiDsLoad1BeginOp ( case ACPI_TYPE_BUFFER: /* - * These types we will allow, but we will change the type. This - * enables some existing code of the form: + * These types we will allow, but we will change the type. + * This enables some existing code of the form: * * Name (DEB, 0) * Scope (DEB) { ... } * - * Note: silently change the type here. On the second pass, we will report - * a warning + * Note: silently change the type here. On the second pass, + * we will report a warning */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)\n", - Path, AcpiUtGetTypeName (Node->Type))); + "Type override - [%4.4s] had invalid type (%s) " + "for Scope operator, changed to type ANY\n", + AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type))); Node->Type = ACPI_TYPE_ANY; WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY; @@ -318,8 +319,9 @@ AcpiDsLoad1BeginOp ( /* All other types are an error */ ACPI_ERROR ((AE_INFO, - "Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)", - AcpiUtGetTypeName (Node->Type), Path)); + "Invalid type (%s) for target of " + "Scope operator [%4.4s] (Cannot override)", + AcpiUtGetTypeName (Node->Type), AcpiUtGetNodeName (Node))); return_ACPI_STATUS (AE_AML_OPERAND_TYPE); } @@ -794,15 +796,16 @@ AcpiDsLoad2BeginOp ( case ACPI_TYPE_BUFFER: /* - * These types we will allow, but we will change the type. This - * enables some existing code of the form: + * These types we will allow, but we will change the type. + * This enables some existing code of the form: * * Name (DEB, 0) * Scope (DEB) { ... } */ ACPI_WARNING ((AE_INFO, - "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)", - BufferPtr, AcpiUtGetTypeName (Node->Type))); + "Type override - [%4.4s] had invalid type (%s) " + "for Scope operator, changed to type ANY\n", + AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type))); Node->Type = ACPI_TYPE_ANY; WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY; @@ -813,8 +816,9 @@ AcpiDsLoad2BeginOp ( /* All other types are an error */ ACPI_ERROR ((AE_INFO, - "Invalid type (%s) for target of Scope operator [%4.4s]", - AcpiUtGetTypeName (Node->Type), BufferPtr)); + "Invalid type (%s) for target of " + "Scope operator [%4.4s] (Cannot override)", + AcpiUtGetTypeName (Node->Type), AcpiUtGetNodeName (Node))); return (AE_AML_OPERAND_TYPE); } @@ -1154,33 +1158,40 @@ AcpiDsLoad2EndOp ( } /* - * If we are executing a method, initialize the region + * The OpRegion is not fully parsed at this time. The only valid + * argument is the SpaceId. (We must save the address of the + * AML of the address and length operands) + * + * If we have a valid region, initialize it. The namespace is + * unlocked at this point. + * + * Need to unlock interpreter if it is locked (if we are running + * a control method), in order to allow _REG methods to be run + * during AcpiEvInitializeRegion. */ if (WalkState->MethodNode) { + /* + * Executing a method: initialize the region and unlock + * the interpreter + */ Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, RegionSpace, WalkState); if (ACPI_FAILURE (Status)) { return (Status); } - } - /* - * The OpRegion is not fully parsed at this time. Only valid - * argument is the SpaceId. (We must save the address of the - * AML of the address and length operands) - */ + AcpiExExitInterpreter (); + } - /* - * If we have a valid region, initialize it - * Namespace is NOT locked at this point. - * - * TBD: need to unlock interpreter if it is locked, in order - * to allow _REG methods to be run. - */ Status = AcpiEvInitializeRegion (AcpiNsGetAttachedObject (Node), FALSE); + if (WalkState->MethodNode) + { + AcpiExEnterInterpreter (); + } + if (ACPI_FAILURE (Status)) { /* Modified: vendor-sys/acpica/dist/events/evregion.c ============================================================================== --- vendor-sys/acpica/dist/events/evregion.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/events/evregion.c Mon Dec 14 22:07:33 2009 (r200549) @@ -845,7 +845,7 @@ AcpiEvInstallHandler ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (ObjHandle); + Node = AcpiNsValidateHandle (ObjHandle); if (!Node) { return (AE_BAD_PARAMETER); @@ -1243,7 +1243,7 @@ AcpiEvRegRun ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (ObjHandle); + Node = AcpiNsValidateHandle (ObjHandle); if (!Node) { return (AE_BAD_PARAMETER); Modified: vendor-sys/acpica/dist/events/evrgnini.c ============================================================================== --- vendor-sys/acpica/dist/events/evrgnini.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/events/evrgnini.c Mon Dec 14 22:07:33 2009 (r200549) @@ -716,6 +716,20 @@ AcpiEvInitializeRegion ( HandlerObj = ObjDesc->ThermalZone.Handler; break; + case ACPI_TYPE_METHOD: + /* + * If we are executing module level code, the original + * Node's object was replaced by this Method object and we + * saved the handler in the method object. + * + * See AcpiNsExecModuleCode + */ + if (ObjDesc->Method.Flags & AOPOBJ_MODULE_LEVEL) + { + HandlerObj = ObjDesc->Method.Extra.Handler; + } + break; + default: /* Ignore other objects */ break; Modified: vendor-sys/acpica/dist/events/evxface.c ============================================================================== --- vendor-sys/acpica/dist/events/evxface.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/events/evxface.c Mon Dec 14 22:07:33 2009 (r200549) @@ -368,7 +368,7 @@ AcpiInstallNotifyHandler ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (Device); + Node = AcpiNsValidateHandle (Device); if (!Node) { Status = AE_BAD_PARAMETER; @@ -555,7 +555,7 @@ AcpiRemoveNotifyHandler ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (Device); + Node = AcpiNsValidateHandle (Device); if (!Node) { Status = AE_BAD_PARAMETER; Modified: vendor-sys/acpica/dist/events/evxfevnt.c ============================================================================== --- vendor-sys/acpica/dist/events/evxfevnt.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/events/evxfevnt.c Mon Dec 14 22:07:33 2009 (r200549) @@ -805,7 +805,7 @@ AcpiInstallGpeBlock ( return (Status); } - Node = AcpiNsMapHandleToNode (GpeDevice); + Node = AcpiNsValidateHandle (GpeDevice); if (!Node) { Status = AE_BAD_PARAMETER; @@ -905,7 +905,7 @@ AcpiRemoveGpeBlock ( return (Status); } - Node = AcpiNsMapHandleToNode (GpeDevice); + Node = AcpiNsValidateHandle (GpeDevice); if (!Node) { Status = AE_BAD_PARAMETER; Modified: vendor-sys/acpica/dist/events/evxfregn.c ============================================================================== --- vendor-sys/acpica/dist/events/evxfregn.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/events/evxfregn.c Mon Dec 14 22:07:33 2009 (r200549) @@ -171,7 +171,7 @@ AcpiInstallAddressSpaceHandler ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (Device); + Node = AcpiNsValidateHandle (Device); if (!Node) { Status = AE_BAD_PARAMETER; @@ -244,7 +244,7 @@ AcpiRemoveAddressSpaceHandler ( /* Convert and validate the device handle */ - Node = AcpiNsMapHandleToNode (Device); + Node = AcpiNsValidateHandle (Device); if (!Node || ((Node->Type != ACPI_TYPE_DEVICE) && (Node->Type != ACPI_TYPE_PROCESSOR) && Modified: vendor-sys/acpica/dist/executer/exmutex.c ============================================================================== --- vendor-sys/acpica/dist/executer/exmutex.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/executer/exmutex.c Mon Dec 14 22:07:33 2009 (r200549) @@ -490,6 +490,15 @@ AcpiExReleaseMutex ( return_ACPI_STATUS (AE_AML_MUTEX_NOT_ACQUIRED); } + /* Must have a valid thread ID */ + + if (!WalkState->Thread) + { + ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], null thread info", + AcpiUtGetNodeName (ObjDesc->Mutex.Node))); + return_ACPI_STATUS (AE_AML_INTERNAL); + } + /* * The Mutex is owned, but this thread must be the owner. * Special case for Global Lock, any thread can release @@ -505,15 +514,6 @@ AcpiExReleaseMutex ( return_ACPI_STATUS (AE_AML_NOT_OWNER); } - /* Must have a valid thread ID */ - - if (!WalkState->Thread) - { - ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], null thread info", - AcpiUtGetNodeName (ObjDesc->Mutex.Node))); - return_ACPI_STATUS (AE_AML_INTERNAL); - } - /* * The sync level of the mutex must be equal to the current sync level. In * other words, the current level means that at least one mutex at that Modified: vendor-sys/acpica/dist/include/acnamesp.h ============================================================================== --- vendor-sys/acpica/dist/include/acnamesp.h Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/include/acnamesp.h Mon Dec 14 22:07:33 2009 (r200549) @@ -456,6 +456,11 @@ AcpiNsComplexRepairs ( ACPI_STATUS ValidateStatus, ACPI_OPERAND_OBJECT **ReturnObjectPtr); +void +AcpiNsRemoveNullElements ( + ACPI_PREDEFINED_DATA *Data, + UINT8 PackageType, + ACPI_OPERAND_OBJECT *ObjDesc); /* * nssearch - Namespace searching and entry @@ -542,13 +547,9 @@ AcpiNsExternalizeName ( char **ConvertedName); ACPI_NAMESPACE_NODE * -AcpiNsMapHandleToNode ( +AcpiNsValidateHandle ( ACPI_HANDLE Handle); -ACPI_HANDLE -AcpiNsConvertEntryToHandle( - ACPI_NAMESPACE_NODE *Node); - void AcpiNsTerminate ( void); Modified: vendor-sys/acpica/dist/include/acobject.h ============================================================================== --- vendor-sys/acpica/dist/include/acobject.h Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/include/acobject.h Mon Dec 14 22:07:33 2009 (r200549) @@ -288,7 +288,12 @@ typedef struct acpi_object_method UINT8 SyncLevel; union acpi_operand_object *Mutex; UINT8 *AmlStart; - ACPI_INTERNAL_METHOD Implementation; + union + { + ACPI_INTERNAL_METHOD Implementation; + union acpi_operand_object *Handler; + } Extra; + UINT32 AmlLength; UINT8 ThreadCount; ACPI_OWNER_ID OwnerId; Modified: vendor-sys/acpica/dist/include/acoutput.h ============================================================================== --- vendor-sys/acpica/dist/include/acoutput.h Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/include/acoutput.h Mon Dec 14 22:07:33 2009 (r200549) @@ -158,7 +158,8 @@ #define ACPI_LV_INIT 0x00000001 #define ACPI_LV_DEBUG_OBJECT 0x00000002 #define ACPI_LV_INFO 0x00000004 -#define ACPI_LV_ALL_EXCEPTIONS 0x00000007 +#define ACPI_LV_REPAIR 0x00000008 +#define ACPI_LV_ALL_EXCEPTIONS 0x0000000F /* Trace verbosity level 1 [Standard Trace Level] */ @@ -217,6 +218,7 @@ #define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT) #define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT) #define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO) +#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR) #define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS) /* Trace level -- also used in the global "DebugLevel" */ @@ -248,8 +250,8 @@ /* Defaults for DebugLevel, debug and normal */ -#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) -#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) +#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR) +#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR) #define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) Modified: vendor-sys/acpica/dist/include/acpixf.h ============================================================================== --- vendor-sys/acpica/dist/include/acpixf.h Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/include/acpixf.h Mon Dec 14 22:07:33 2009 (r200549) @@ -120,7 +120,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20091112 +#define ACPI_CA_VERSION 0x20091214 #include "actypes.h" #include "actbl.h" Modified: vendor-sys/acpica/dist/namespace/nsaccess.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nsaccess.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nsaccess.c Mon Dec 14 22:07:33 2009 (r200549) @@ -251,7 +251,7 @@ AcpiNsRootInitialize ( /* Mark this as a very SPECIAL method */ ObjDesc->Method.MethodFlags = AML_METHOD_INTERNAL_ONLY; - ObjDesc->Method.Implementation = AcpiUtOsiImplementation; + ObjDesc->Method.Extra.Implementation = AcpiUtOsiImplementation; #endif break; Modified: vendor-sys/acpica/dist/namespace/nsdump.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nsdump.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nsdump.c Mon Dec 14 22:07:33 2009 (r200549) @@ -286,7 +286,7 @@ AcpiNsDumpOneObject ( return (AE_OK); } - ThisNode = AcpiNsMapHandleToNode (ObjHandle); + ThisNode = AcpiNsValidateHandle (ObjHandle); if (!ThisNode) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Invalid object handle %p\n", Modified: vendor-sys/acpica/dist/namespace/nseval.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nseval.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nseval.c Mon Dec 14 22:07:33 2009 (r200549) @@ -477,6 +477,19 @@ AcpiNsExecModuleCode ( MethodObj->Method.NextObject); Type = AcpiNsGetType (ParentNode); + /* + * Get the region handler and save it in the method object. We may need + * this if an operation region declaration causes a _REG method to be run. + * + * We can't do this in AcpiPsLinkModuleCode because + * AcpiGbl_RootNode->Object is NULL at PASS1. + */ + if ((Type == ACPI_TYPE_DEVICE) && ParentNode->Object) + { + MethodObj->Method.Extra.Handler = + ParentNode->Object->Device.Handler; + } + /* Must clear NextObject (AcpiNsAttachObject needs the field) */ MethodObj->Method.NextObject = NULL; @@ -513,6 +526,13 @@ AcpiNsExecModuleCode ( ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "Executed module-level code at %p\n", MethodObj->Method.AmlStart)); + /* Delete a possible implicit return value (in slack mode) */ + + if (Info->ReturnObject) + { + AcpiUtRemoveReference (Info->ReturnObject); + } + /* Detach the temporary method object */ AcpiNsDetachObject (ParentNode); Modified: vendor-sys/acpica/dist/namespace/nsnames.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nsnames.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nsnames.c Mon Dec 14 22:07:33 2009 (r200549) @@ -337,7 +337,7 @@ AcpiNsHandleToPathname ( ACPI_FUNCTION_TRACE_PTR (NsHandleToPathname, TargetHandle); - Node = AcpiNsMapHandleToNode (TargetHandle); + Node = AcpiNsValidateHandle (TargetHandle); if (!Node) { return_ACPI_STATUS (AE_BAD_PARAMETER); Modified: vendor-sys/acpica/dist/namespace/nspredef.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nspredef.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nspredef.c Mon Dec 14 22:07:33 2009 (r200549) @@ -313,31 +313,40 @@ AcpiNsCheckPredefinedNames ( Data->Pathname = Pathname; /* - * Check that the type of the return object is what is expected for - * this predefined name + * Check that the type of the main return object is what is expected + * for this predefined name */ Status = AcpiNsCheckObjectType (Data, ReturnObjectPtr, Predefined->Info.ExpectedBtypes, ACPI_NOT_PACKAGE_ELEMENT); if (ACPI_FAILURE (Status)) { - goto CheckValidationStatus; + goto Exit; } - /* For returned Package objects, check the type of all sub-objects */ - - if (ReturnObject->Common.Type == ACPI_TYPE_PACKAGE) + /* + * For returned Package objects, check the type of all sub-objects. + * Note: Package may have been newly created by call above. + */ + if ((*ReturnObjectPtr)->Common.Type == ACPI_TYPE_PACKAGE) { Status = AcpiNsCheckPackage (Data, ReturnObjectPtr); + if (ACPI_FAILURE (Status)) + { + goto Exit; + } } /* - * Perform additional, more complicated repairs on a per-name - * basis. + * The return object was OK, or it was successfully repaired above. + * Now make some additional checks such as verifying that package + * objects are sorted correctly (if required) or buffer objects have + * the correct data width (bytes vs. dwords). These repairs are + * performed on a per-name basis, i.e., the code is specific to + * particular predefined names. */ Status = AcpiNsComplexRepairs (Data, Node, Status, ReturnObjectPtr); - -CheckValidationStatus: +Exit: /* * If the object validation failed or if we successfully repaired one * or more objects, mark the parent node to suppress further warning @@ -349,7 +358,6 @@ CheckValidationStatus: } ACPI_FREE (Data); - Cleanup: ACPI_FREE (Pathname); return (Status); @@ -544,6 +552,12 @@ AcpiNsCheckPackage ( "%s Validating return Package of Type %X, Count %X\n", Data->Pathname, Package->RetInfo.Type, ReturnObject->Package.Count)); + /* + * For variable-length Packages, we can safely remove all embedded + * and trailing NULL package elements + */ + AcpiNsRemoveNullElements (Data, Package->RetInfo.Type, ReturnObject); + /* Extract package count and elements array */ Elements = ReturnObject->Package.Elements; @@ -582,9 +596,10 @@ AcpiNsCheckPackage ( } else if (Count > ExpectedCount) { - ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags, - "Return Package is larger than needed - " - "found %u, expected %u", Count, ExpectedCount)); + ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, + "%s: Return Package is larger than needed - " + "found %u, expected %u\n", + Data->Pathname, Count, ExpectedCount)); } /* Validate all elements of the returned package */ @@ -800,56 +815,20 @@ AcpiNsCheckPackageList ( ACPI_OPERAND_OBJECT *SubPackage; ACPI_OPERAND_OBJECT **SubElements; ACPI_STATUS Status; - BOOLEAN NonTrailingNull = FALSE; UINT32 ExpectedCount; UINT32 i; UINT32 j; - /* Validate each sub-Package in the parent Package */ - + /* + * Validate each sub-Package in the parent Package + * + * NOTE: assumes list of sub-packages contains no NULL elements. + * Any NULL elements should have been removed by earlier call + * to AcpiNsRemoveNullElements. + */ for (i = 0; i < Count; i++) { - /* - * Handling for NULL package elements. For now, we will simply allow - * a parent package with trailing NULL elements. This can happen if - * the package was defined to be longer than the initializer list. - * This is legal as per the ACPI specification. It is often used - * to allow for dynamic initialization of a Package. - * - * A future enhancement may be to simply truncate the package to - * remove the trailing NULL elements. - */ - if (!(*Elements)) - { - if (!NonTrailingNull) - { - /* Ensure the remaining elements are all NULL */ - - for (j = 1; j < (Count - i + 1); j++) - { - if (Elements[j]) - { - NonTrailingNull = TRUE; - } - } - - if (!NonTrailingNull) - { - /* Ignore the trailing NULL elements */ - - return (AE_OK); - } - } - - /* There are trailing non-null elements, issue warning */ - - ACPI_WARN_PREDEFINED ((AE_INFO, Data->Pathname, Data->NodeFlags, - "Found NULL element at package index %u", i)); - Elements++; - continue; - } - SubPackage = *Elements; SubElements = SubPackage->Package.Elements; Modified: vendor-sys/acpica/dist/namespace/nsrepair.c ============================================================================== --- vendor-sys/acpica/dist/namespace/nsrepair.c Mon Dec 14 22:00:11 2009 (r200548) +++ vendor-sys/acpica/dist/namespace/nsrepair.c Mon Dec 14 22:07:33 2009 (r200549) @@ -119,7 +119,6 @@ #include "accommon.h" #include "acnamesp.h" #include "acinterp.h" -#include "acpredef.h" #define _COMPONENT ACPI_NAMESPACE ACPI_MODULE_NAME ("nsrepair") @@ -127,6 +126,54 @@ /******************************************************************************* * + * This module attempts to repair or convert objects returned by the + * predefined methods to an object type that is expected, as per the ACPI + * specification. The need for this code is dictated by the many machines that + * return incorrect types for the standard predefined methods. Performing these + * conversions here, in one place, eliminates the need for individual ACPI + * device drivers to do the same. Note: Most of these conversions are different + * than the internal object conversion routines used for implicit object + * conversion. + * + * The following conversions can be performed as necessary: + * + * Integer -> String + * Integer -> Buffer + * String -> Integer + * String -> Buffer + * Buffer -> Integer + * Buffer -> String + * Buffer -> Package of Integers + * Package -> Package of one Package + * + ******************************************************************************/ + + +/* Local prototypes */ + +static ACPI_STATUS +AcpiNsConvertToInteger ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject); + +static ACPI_STATUS +AcpiNsConvertToString ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject); + +static ACPI_STATUS +AcpiNsConvertToBuffer ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject); + +static ACPI_STATUS +AcpiNsConvertToPackage ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject); + + +/******************************************************************************* + * * FUNCTION: AcpiNsRepairObject * * PARAMETERS: Data - Pointer to validation data structure @@ -153,35 +200,230 @@ AcpiNsRepairObject ( { ACPI_OPERAND_OBJECT *ReturnObject = *ReturnObjectPtr; ACPI_OPERAND_OBJECT *NewObject; - ACPI_SIZE Length; ACPI_STATUS Status; + ACPI_FUNCTION_NAME (NsRepairObject); + + /* * At this point, we know that the type of the returned object was not * one of the expected types for this predefined name. Attempt to - * repair the object. Only a limited number of repairs are possible. + * repair the object by converting it to one of the expected object + * types for this predefined name. */ - switch (ReturnObject->Common.Type) + if (ExpectedBtypes & ACPI_RTYPE_INTEGER) + { + Status = AcpiNsConvertToInteger (ReturnObject, &NewObject); + if (ACPI_SUCCESS (Status)) + { + goto ObjectRepaired; + } + } + if (ExpectedBtypes & ACPI_RTYPE_STRING) + { + Status = AcpiNsConvertToString (ReturnObject, &NewObject); + if (ACPI_SUCCESS (Status)) + { + goto ObjectRepaired; + } + } + if (ExpectedBtypes & ACPI_RTYPE_BUFFER) + { + Status = AcpiNsConvertToBuffer (ReturnObject, &NewObject); + if (ACPI_SUCCESS (Status)) + { + goto ObjectRepaired; + } + } + if (ExpectedBtypes & ACPI_RTYPE_PACKAGE) + { + Status = AcpiNsConvertToPackage (ReturnObject, &NewObject); + if (ACPI_SUCCESS (Status)) + { + goto ObjectRepaired; + } + } + + /* We cannot repair this object */ + + return (AE_AML_OPERAND_TYPE); + + +ObjectRepaired: + + /* Object was successfully repaired */ + + /* + * If the original object is a package element, we need to: + * 1. Set the reference count of the new object to match the + * reference count of the old object. + * 2. Decrement the reference count of the original object. + */ + if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT) + { + NewObject->Common.ReferenceCount = + ReturnObject->Common.ReferenceCount; + + if (ReturnObject->Common.ReferenceCount > 1) + { + ReturnObject->Common.ReferenceCount--; + } + + ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, + "%s: Converted %s to expected %s at index %u\n", + Data->Pathname, AcpiUtGetObjectTypeName (ReturnObject), + AcpiUtGetObjectTypeName (NewObject), PackageIndex)); + } + else + { + ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, + "%s: Converted %s to expected %s\n", + Data->Pathname, AcpiUtGetObjectTypeName (ReturnObject), + AcpiUtGetObjectTypeName (NewObject))); + } + + /* Delete old object, install the new return object */ + + AcpiUtRemoveReference (ReturnObject); + *ReturnObjectPtr = NewObject; + Data->Flags |= ACPI_OBJECT_REPAIRED; + return (AE_OK); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiNsConvertToInteger + * + * PARAMETERS: OriginalObject - Object to be converted + * ReturnObject - Where the new converted object is returned + * + * RETURN: Status. AE_OK if conversion was successful. + * + * DESCRIPTION: Attempt to convert a String/Buffer object to an Integer. + * + ******************************************************************************/ + +static ACPI_STATUS +AcpiNsConvertToInteger ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject) +{ + ACPI_OPERAND_OBJECT *NewObject; + ACPI_STATUS Status; + UINT64 Value = 0; + UINT32 i; + + + switch (OriginalObject->Common.Type) { + case ACPI_TYPE_STRING: + + /* String-to-Integer conversion */ + + Status = AcpiUtStrtoul64 (OriginalObject->String.Pointer, + ACPI_ANY_BASE, &Value); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + break; + case ACPI_TYPE_BUFFER: - /* Does the method/object legally return a string? */ + /* Buffer-to-Integer conversion. Max buffer size is 64 bits. */ - if (!(ExpectedBtypes & ACPI_RTYPE_STRING)) + if (OriginalObject->Buffer.Length > 8) { return (AE_AML_OPERAND_TYPE); } + /* Extract each buffer byte to create the integer */ + + for (i = 0; i < OriginalObject->Buffer.Length; i++) + { + Value |= ((UINT64) OriginalObject->Buffer.Pointer[i] << (i * 8)); + } + break; + + default: + return (AE_AML_OPERAND_TYPE); + } + + NewObject = AcpiUtCreateIntegerObject (Value); + if (!NewObject) + { + return (AE_NO_MEMORY); + } + + *ReturnObject = NewObject; + return (AE_OK); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiNsConvertToString + * + * PARAMETERS: OriginalObject - Object to be converted + * ReturnObject - Where the new converted object is returned + * + * RETURN: Status. AE_OK if conversion was successful. + * + * DESCRIPTION: Attempt to convert a Integer/Buffer object to a String. + * + ******************************************************************************/ + +static ACPI_STATUS +AcpiNsConvertToString ( + ACPI_OPERAND_OBJECT *OriginalObject, + ACPI_OPERAND_OBJECT **ReturnObject) +{ + ACPI_OPERAND_OBJECT *NewObject; + ACPI_SIZE Length; + ACPI_STATUS Status; + + + switch (OriginalObject->Common.Type) + { + case ACPI_TYPE_INTEGER: /* - * Have a Buffer, expected a String, convert. Use a ToString + * Integer-to-String conversion. Commonly, convert + * an integer of value 0 to a NULL string. The last element of + * _BIF and _BIX packages occasionally need this fix. + */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Mon Dec 14 22:08:36 2009 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2AF8B106568B; Mon, 14 Dec 2009 22:08:36 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 016CA8FC1E; Mon, 14 Dec 2009 22:08:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBEM8ZA0040111; Mon, 14 Dec 2009 22:08:35 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBEM8ZU2040110; Mon, 14 Dec 2009 22:08:35 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200912142208.nBEM8ZU2040110@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 14 Dec 2009 22:08:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r200550 - vendor-sys/acpica/20091214 X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Dec 2009 22:08:36 -0000 Author: jkim Date: Mon Dec 14 22:08:35 2009 New Revision: 200550 URL: http://svn.freebsd.org/changeset/base/200550 Log: Tag ACPICA 20091214. Added: vendor-sys/acpica/20091214/ - copied from r200549, vendor-sys/acpica/dist/ From owner-svn-src-vendor@FreeBSD.ORG Tue Dec 15 18:09:08 2009 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0AFFB1065672; Tue, 15 Dec 2009 18:09:08 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E67FD8FC13; Tue, 15 Dec 2009 18:09:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBFI97Wf070931; Tue, 15 Dec 2009 18:09:07 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBFI97g1070920; Tue, 15 Dec 2009 18:09:07 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <200912151809.nBFI97g1070920@svn.freebsd.org> From: Roman Divacky Date: Tue, 15 Dec 2009 18:09:07 +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: r200581 - in vendor/llvm/dist: . autoconf cmake/modules docs include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/Bitcode include/llvm/CodeGen include/llvm/CompilerDriver in... X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Dec 2009 18:09:08 -0000 Author: rdivacky Date: Tue Dec 15 18:09:07 2009 New Revision: 200581 URL: http://svn.freebsd.org/changeset/base/200581 Log: Update LLVM to 91430. Added: vendor/llvm/dist/include/llvm/ADT/DeltaAlgorithm.h vendor/llvm/dist/include/llvm/Analysis/PHITransAddr.h vendor/llvm/dist/include/llvm/CodeGen/CalcSpillWeights.h vendor/llvm/dist/include/llvm/CodeGen/MachineSSAUpdater.h vendor/llvm/dist/lib/Analysis/PHITransAddr.cpp vendor/llvm/dist/lib/CodeGen/CalcSpillWeights.cpp vendor/llvm/dist/lib/CodeGen/MachineSSAUpdater.cpp vendor/llvm/dist/lib/CodeGen/MaxStackAlignment.cpp vendor/llvm/dist/lib/Support/DeltaAlgorithm.cpp vendor/llvm/dist/test/CodeGen/ARM/2009-12-02-vtrn-undef.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm3.ll vendor/llvm/dist/test/CodeGen/MSP430/bit.ll vendor/llvm/dist/test/CodeGen/MSP430/setcc.ll vendor/llvm/dist/test/CodeGen/Thumb2/2009-12-01-LoopIVUsers.ll vendor/llvm/dist/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll vendor/llvm/dist/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll vendor/llvm/dist/test/CodeGen/X86/2009-12-12-CoalescerBug.ll vendor/llvm/dist/test/CodeGen/X86/3addr-16bit.ll vendor/llvm/dist/test/CodeGen/X86/fastcc3struct.ll vendor/llvm/dist/test/CodeGen/X86/select-aggregate.ll vendor/llvm/dist/test/CodeGen/X86/setcc.ll vendor/llvm/dist/test/CodeGen/X86/splat-scalar-load.ll vendor/llvm/dist/test/CodeGen/X86/vec-trunc-store.ll vendor/llvm/dist/test/CodeGen/X86/vec_compare-2.ll vendor/llvm/dist/test/CodeGen/X86/vec_ext_inreg.ll vendor/llvm/dist/test/CodeGen/X86/zext-shl.ll vendor/llvm/dist/test/DebugInfo/2009-12-01-CurrentFn.ll vendor/llvm/dist/test/FrontendC++/weak-external.cpp vendor/llvm/dist/test/FrontendC/2009-12-07-BitFieldAlignment.c vendor/llvm/dist/test/LLVMC/AppendCmdHook.td vendor/llvm/dist/test/LLVMC/ForwardTransformedValue.td vendor/llvm/dist/test/LLVMC/ForwardValue.td vendor/llvm/dist/test/LLVMC/HookWithInFile.td vendor/llvm/dist/test/LLVMC/Init.td vendor/llvm/dist/test/LLVMC/OutputSuffixHook.td vendor/llvm/dist/test/Transforms/GVN/crash-no-aa.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/indirectbr.ll vendor/llvm/dist/test/Transforms/InstCombine/sext.ll vendor/llvm/dist/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll vendor/llvm/dist/tools/llvmc/plugins/Base/Hooks.cpp vendor/llvm/dist/unittests/ADT/DeltaAlgorithmTest.cpp Deleted: vendor/llvm/dist/include/llvm/CodeGen/BreakCriticalMachineEdge.h vendor/llvm/dist/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll vendor/llvm/dist/test/DebugInfo/2008-10-17-C++DebugCrash.ll vendor/llvm/dist/test/DebugInfo/2008-11-05-InlinedFuncStart.ll vendor/llvm/dist/test/DebugInfo/2009-01-15-RecordVariableCrash.ll vendor/llvm/dist/test/DebugInfo/2009-02-18-DefaultScope-Crash.ll vendor/llvm/dist/test/DebugInfo/2009-06-12-Inline.ll vendor/llvm/dist/test/DebugInfo/2009-06-12-InlineFuncStart.ll vendor/llvm/dist/test/DebugInfo/2009-06-15-InlineFuncStart.ll vendor/llvm/dist/test/DebugInfo/2009-06-15-abstract_origin.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/lifetime-simple.ll vendor/llvm/dist/test/Transforms/GVN/rle-dominated.ll vendor/llvm/dist/test/Transforms/InstCombine/sext-misc.ll vendor/llvm/dist/test/Transforms/InstCombine/xor-demorgans.ll Modified: vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/Makefile vendor/llvm/dist/Makefile.config.in vendor/llvm/dist/autoconf/configure.ac vendor/llvm/dist/cmake/modules/CheckAtomic.cmake vendor/llvm/dist/configure vendor/llvm/dist/docs/CompilerDriver.html vendor/llvm/dist/docs/GettingStarted.html vendor/llvm/dist/docs/LangRef.html vendor/llvm/dist/docs/Makefile vendor/llvm/dist/include/llvm/ADT/DenseMap.h vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h vendor/llvm/dist/include/llvm/ADT/DenseSet.h vendor/llvm/dist/include/llvm/ADT/ImmutableList.h vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/ADT/StringSwitch.h vendor/llvm/dist/include/llvm/ADT/ValueMap.h vendor/llvm/dist/include/llvm/ADT/ilist.h vendor/llvm/dist/include/llvm/Analysis/AliasSetTracker.h vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h vendor/llvm/dist/include/llvm/Analysis/IVUsers.h vendor/llvm/dist/include/llvm/Analysis/LoopDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopPass.h vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/Passes.h vendor/llvm/dist/include/llvm/Analysis/ProfileInfo.h vendor/llvm/dist/include/llvm/Argument.h vendor/llvm/dist/include/llvm/Bitcode/Deserialize.h vendor/llvm/dist/include/llvm/CallingConv.h vendor/llvm/dist/include/llvm/CodeGen/DAGISelHeader.h vendor/llvm/dist/include/llvm/CodeGen/FastISel.h vendor/llvm/dist/include/llvm/CodeGen/LinkAllCodegenComponents.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/LiveVariables.h vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstr.h vendor/llvm/dist/include/llvm/CodeGen/Passes.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td vendor/llvm/dist/include/llvm/CompilerDriver/Common.td vendor/llvm/dist/include/llvm/IntrinsicInst.h vendor/llvm/dist/include/llvm/Intrinsics.td vendor/llvm/dist/include/llvm/LinkAllVMCore.h vendor/llvm/dist/include/llvm/Pass.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/Compiler.h vendor/llvm/dist/include/llvm/Support/Debug.h vendor/llvm/dist/include/llvm/Support/DebugLoc.h vendor/llvm/dist/include/llvm/Support/ErrorHandling.h vendor/llvm/dist/include/llvm/Support/GetElementPtrTypeIterator.h vendor/llvm/dist/include/llvm/Support/IRBuilder.h vendor/llvm/dist/include/llvm/Support/ValueHandle.h vendor/llvm/dist/include/llvm/Support/raw_ostream.h vendor/llvm/dist/include/llvm/Support/type_traits.h vendor/llvm/dist/include/llvm/System/Atomic.h vendor/llvm/dist/include/llvm/System/DataTypes.h.cmake vendor/llvm/dist/include/llvm/System/DataTypes.h.in vendor/llvm/dist/include/llvm/Target/TargetData.h vendor/llvm/dist/include/llvm/Target/TargetInstrInfo.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h vendor/llvm/dist/lib/Analysis/CMakeLists.txt vendor/llvm/dist/lib/Analysis/CaptureTracking.cpp vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/DebugInfo.cpp vendor/llvm/dist/lib/Analysis/IPA/Andersens.cpp vendor/llvm/dist/lib/Analysis/IVUsers.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/MemoryDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/ProfileEstimatorPass.cpp vendor/llvm/dist/lib/Analysis/ProfileInfo.cpp vendor/llvm/dist/lib/Analysis/ProfileInfoLoaderPass.cpp vendor/llvm/dist/lib/Analysis/ProfileVerifierPass.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Analysis/ValueTracking.cpp vendor/llvm/dist/lib/AsmParser/LLLexer.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/AsmParser/LLParser.h vendor/llvm/dist/lib/AsmParser/LLToken.h vendor/llvm/dist/lib/Bitcode/Reader/Deserialize.cpp vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfException.h vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/CodePlacementOpt.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/LowerSubregs.cpp vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/MachineLoopInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp vendor/llvm/dist/lib/CodeGen/PHIElimination.cpp vendor/llvm/dist/lib/CodeGen/PHIElimination.h vendor/llvm/dist/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm/dist/lib/CodeGen/PreAllocSplitting.cpp vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm/dist/lib/CodeGen/RegAllocLinearScan.cpp vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.h vendor/llvm/dist/lib/CodeGen/Spiller.cpp vendor/llvm/dist/lib/CodeGen/Spiller.h vendor/llvm/dist/lib/CodeGen/StackSlotColoring.cpp vendor/llvm/dist/lib/CodeGen/TailDuplication.cpp vendor/llvm/dist/lib/CodeGen/TargetInstrInfoImpl.cpp vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm/dist/lib/CodeGen/VirtRegRewriter.cpp vendor/llvm/dist/lib/ExecutionEngine/JIT/JIT.cpp vendor/llvm/dist/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp vendor/llvm/dist/lib/ExecutionEngine/JIT/OProfileJITEventListener.cpp vendor/llvm/dist/lib/Support/CMakeLists.txt vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/MemoryBuffer.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/System/Atomic.cpp vendor/llvm/dist/lib/System/Host.cpp vendor/llvm/dist/lib/System/Unix/Path.inc vendor/llvm/dist/lib/Target/ARM/ARM.h vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/NEONMoveFix.cpp vendor/llvm/dist/lib/Target/ARM/NEONPreAllocPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb1RegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb2SizeReduction.cpp vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.cpp vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.h vendor/llvm/dist/lib/Target/CBackend/CBackend.cpp vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.cpp vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.h vendor/llvm/dist/lib/Target/CppBackend/CPPBackend.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.td vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430RegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm/dist/lib/Target/README.txt vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.cpp vendor/llvm/dist/lib/Target/TargetData.cpp vendor/llvm/dist/lib/Target/X86/X86.h vendor/llvm/dist/lib/Target/X86/X86COFFMachineModuleInfo.h vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86FloatingPoint.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h vendor/llvm/dist/lib/Target/X86/X86Instr64bit.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp vendor/llvm/dist/lib/Target/X86/X86InstrInfo.h vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.h vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/MaximumSpanningTree.h vendor/llvm/dist/lib/Transforms/Scalar/CodeGenPrepare.cpp vendor/llvm/dist/lib/Transforms/Scalar/DeadStoreElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/SCCVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/ScalarReplAggregates.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyHalfPowrLibCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerSwitch.cpp vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp vendor/llvm/dist/lib/Transforms/Utils/SSAUpdater.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/VMCore/AsmWriter.cpp vendor/llvm/dist/lib/VMCore/BasicBlock.cpp vendor/llvm/dist/lib/VMCore/Constants.cpp vendor/llvm/dist/lib/VMCore/Function.cpp vendor/llvm/dist/lib/VMCore/LLVMContextImpl.h vendor/llvm/dist/lib/VMCore/Pass.cpp vendor/llvm/dist/lib/VMCore/PassManager.cpp vendor/llvm/dist/test/Analysis/BasicAA/modref.ll vendor/llvm/dist/test/CMakeLists.txt vendor/llvm/dist/test/CodeGen/CellSPU/and_ops.ll vendor/llvm/dist/test/CodeGen/CellSPU/call_indirect.ll vendor/llvm/dist/test/CodeGen/Thumb2/large-stack.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-spill-q.ll vendor/llvm/dist/test/CodeGen/X86/2007-01-08-InstrSched.ll vendor/llvm/dist/test/CodeGen/X86/2009-09-10-SpillComments.ll vendor/llvm/dist/test/CodeGen/X86/2009-09-19-SchedCustomLoweringBug.ll vendor/llvm/dist/test/CodeGen/X86/sink-hoist.ll vendor/llvm/dist/test/CodeGen/X86/sse2.ll vendor/llvm/dist/test/CodeGen/X86/sse3.ll vendor/llvm/dist/test/CodeGen/X86/tail-opts.ll vendor/llvm/dist/test/CodeGen/X86/tailcallstack64.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-load.ll vendor/llvm/dist/test/CodeGen/X86/widen_arith-3.ll vendor/llvm/dist/test/FrontendC++/2006-11-06-StackTrace.cpp vendor/llvm/dist/test/FrontendC++/2006-11-30-NoCompileUnit.cpp vendor/llvm/dist/test/FrontendC++/2006-11-30-Pubnames.cpp vendor/llvm/dist/test/FrontendC++/2009-07-15-LineNumbers.cpp vendor/llvm/dist/test/FrontendC/2005-06-15-ExpandGotoInternalProblem.c vendor/llvm/dist/test/FrontendC/2005-09-24-AsmUserPrefix.c vendor/llvm/dist/test/FrontendC/2006-01-13-StackSave.c vendor/llvm/dist/test/FrontendC/2006-01-23-FileScopeAsm.c vendor/llvm/dist/test/FrontendC/2006-03-03-MissingInitializer.c vendor/llvm/dist/test/FrontendC/2007-01-24-InlineAsmCModifier.c vendor/llvm/dist/test/FrontendC/2007-04-11-InlineAsmStruct.c vendor/llvm/dist/test/FrontendC/2007-04-11-InlineAsmUnion.c vendor/llvm/dist/test/FrontendC/2007-04-11-InlineStorageClassC89.c vendor/llvm/dist/test/FrontendC/2007-04-11-InlineStorageClassC99.c vendor/llvm/dist/test/FrontendC/2007-08-01-LoadStoreAlign.c vendor/llvm/dist/test/FrontendC/2007-12-VarArrayDebug.c vendor/llvm/dist/test/FrontendC/2009-02-17-BitField-dbg.c vendor/llvm/dist/test/FrontendC/BasicInstrs.c vendor/llvm/dist/test/FrontendC/extern-weak.c vendor/llvm/dist/test/FrontendC/unaligned-memcpy.c vendor/llvm/dist/test/FrontendObjC/2009-08-17-DebugInfo.m vendor/llvm/dist/test/FrontendObjC/2009-11-30-Objc-ID.m vendor/llvm/dist/test/LLVMC/EmptyCompilationGraph.td vendor/llvm/dist/test/LLVMC/EnvParentheses.td vendor/llvm/dist/test/LLVMC/ExternOptions.td vendor/llvm/dist/test/LLVMC/ForwardAs.td vendor/llvm/dist/test/LLVMC/HookWithArguments.td vendor/llvm/dist/test/LLVMC/MultiValuedOption.td vendor/llvm/dist/test/LLVMC/MultipleCompilationGraphs.td vendor/llvm/dist/test/LLVMC/NoActions.td vendor/llvm/dist/test/LLVMC/NoCompilationGraph.td vendor/llvm/dist/test/LLVMC/OneOrMore.td vendor/llvm/dist/test/LLVMC/OptionPreprocessor.td vendor/llvm/dist/test/LLVMC/TestWarnings.td vendor/llvm/dist/test/Transforms/ConstProp/loads.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/const-pointers.ll vendor/llvm/dist/test/Transforms/GVN/crash.ll vendor/llvm/dist/test/Transforms/GVN/lifetime-simple.ll vendor/llvm/dist/test/Transforms/GVN/rle.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-signs.ll vendor/llvm/dist/test/Transforms/InstCombine/crash.ll vendor/llvm/dist/test/Transforms/JumpThreading/crash.ll vendor/llvm/dist/test/Unit/lit.cfg vendor/llvm/dist/test/lit.cfg vendor/llvm/dist/tools/llvmc/doc/LLVMC-Reference.rst vendor/llvm/dist/tools/llvmc/example/mcc16/plugins/PIC16Base/PIC16Base.td vendor/llvm/dist/tools/llvmc/plugins/Base/Base.td.in vendor/llvm/dist/tools/llvmc/plugins/Clang/Clang.td vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/unittests/ExecutionEngine/JIT/JITTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/JIT/Makefile vendor/llvm/dist/utils/NewNightlyTest.pl vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp vendor/llvm/dist/utils/TableGen/CodeEmitterGen.h vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/LLVMCConfigurationEmitter.cpp vendor/llvm/dist/utils/TableGen/OptParserEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm/dist/utils/lit/lit.py Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/CMakeLists.txt Tue Dec 15 18:09:07 2009 (r200581) @@ -191,7 +191,13 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LL add_llvm_definitions( -D__STDC_LIMIT_MACROS ) add_llvm_definitions( -D__STDC_CONSTANT_MACROS ) -option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) +# MSVC has a gazillion warnings with this. +if( MSVC ) + option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." OFF) +else( MSVC ) + option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) +endif() + option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) Modified: vendor/llvm/dist/Makefile ============================================================================== --- vendor/llvm/dist/Makefile Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/Makefile Tue Dec 15 18:09:07 2009 (r200581) @@ -66,8 +66,7 @@ ifeq ($(MAKECMDGOALS),tools-only) endif ifeq ($(MAKECMDGOALS),install-clang) - DIRS := tools/clang/tools/driver tools/clang/tools/clang-cc \ - tools/clang/lib/Headers tools/clang/docs + DIRS := tools/clang/tools/driver tools/clang/lib/Headers tools/clang/docs OPTIONAL_DIRS := NO_INSTALL = 1 endif Modified: vendor/llvm/dist/Makefile.config.in ============================================================================== --- vendor/llvm/dist/Makefile.config.in Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/Makefile.config.in Tue Dec 15 18:09:07 2009 (r200581) @@ -313,7 +313,7 @@ endif # Location of the plugin header file for gold. BINUTILS_INCDIR := @BINUTILS_INCDIR@ -C_INCLUDE_DIRS := @C_INCLUDE_DISR@ +C_INCLUDE_DIRS := @C_INCLUDE_DIRS@ CXX_INCLUDE_ROOT := @CXX_INCLUDE_ROOT@ CXX_INCLUDE_ARCH := @CXX_INCLUDE_ARCH@ CXX_INCLUDE_32BIT_DIR = @CXX_INCLUDE_32BIT_DIR@ Modified: vendor/llvm/dist/autoconf/configure.ac ============================================================================== --- vendor/llvm/dist/autoconf/configure.ac Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/autoconf/configure.ac Tue Dec 15 18:09:07 2009 (r200581) @@ -672,7 +672,7 @@ case "$withval" in *) AC_MSG_ERROR([Invalid path for --with-ocaml-libdir. Provide full path]) ;; esac -AC_ARG_WITH(c-include-dir, +AC_ARG_WITH(c-include-dirs, AS_HELP_STRING([--with-c-include-dirs], [Colon separated list of directories clang will search for headers]),, withval="") Modified: vendor/llvm/dist/cmake/modules/CheckAtomic.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/CheckAtomic.cmake Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/cmake/modules/CheckAtomic.cmake Tue Dec 15 18:09:07 2009 (r200581) @@ -1,14 +1,25 @@ # atomic builtins are required for threading support. INCLUDE(CheckCXXSourceCompiles) - + CHECK_CXX_SOURCE_COMPILES(" +#ifdef _MSC_VER +#include +#endif int main() { +#ifdef _MSC_VER + volatile LONG val = 1; + MemoryBarrier(); + InterlockedCompareExchange(&val, 0, 1); + InterlockedIncrement(&val); + InterlockedDecrement(&val); +#else volatile unsigned long val = 1; __sync_synchronize(); __sync_val_compare_and_swap(&val, 1, 0); __sync_add_and_fetch(&val, 1); __sync_sub_and_fetch(&val, 1); +#endif return 0; } " LLVM_MULTITHREADED) Modified: vendor/llvm/dist/configure ============================================================================== --- vendor/llvm/dist/configure Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/configure Tue Dec 15 18:09:07 2009 (r200581) @@ -5286,9 +5286,9 @@ echo "$as_me: error: Invalid path for -- esac -# Check whether --with-c-include-dir was given. -if test "${with_c_include_dir+set}" = set; then - withval=$with_c_include_dir; +# Check whether --with-c-include-dirs was given. +if test "${with_c_include_dirs+set}" = set; then + withval=$with_c_include_dirs; else withval="" fi Modified: vendor/llvm/dist/docs/CompilerDriver.html ============================================================================== --- vendor/llvm/dist/docs/CompilerDriver.html Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/docs/CompilerDriver.html Tue Dec 15 18:09:07 2009 (r200581) @@ -17,28 +17,28 @@ The ReST source lives in the directory '

Contents

-

Conditional evaluation

+

Conditional evaluation

The 'case' construct is the main means by which programmability is achieved in LLVMC. It can be used to calculate edge weights, program actions and modify the shell commands to be executed. The 'case' @@ -433,7 +438,7 @@ a given value. Example: (parameter_equals "W", "all").

  • element_in_list - Returns true if a command-line parameter list contains a given value. -Example: (parameter_in_list "l", "pthread").
  • +Example: (element_in_list "l", "pthread").
  • input_languages_contain - Returns true if a given language belongs to the current input language set. Example: (input_languages_contain "c++").
  • @@ -475,7 +480,7 @@ argument. Example: -

    Writing a tool description

    +

    Writing a tool description

    As was said earlier, nodes in the compilation graph represent tools, which are described separately. A tool definition looks like this (taken from the include/llvm/CompilerDriver/Tools.td file):

    @@ -512,12 +517,12 @@ list of input files and joins them toget tools are passed to this tool.
  • actions - A single big case expression that specifies how this tool reacts on command-line options (described in more detail -below).
  • +below). -
    -

    Actions

    +
    +

    Actions

    A tool often needs to react to command-line options, and this is precisely what the actions property is for. The next example illustrates this feature:

    @@ -550,28 +555,31 @@ like a linker.

  • Possible actions:

      -
    • append_cmd - append a string to the tool invocation -command. -Example: (case (switch_on "pthread"), (append_cmd -"-lpthread"))
    • -
    • error - exit with error. +
    • append_cmd - Append a string to the tool invocation command. +Example: (case (switch_on "pthread"), (append_cmd "-lpthread")).
    • +
    • error - Exit with error. Example: (error "Mixing -c and -S is not allowed!").
    • -
    • warning - print a warning. +
    • warning - Print a warning. Example: (warning "Specifying both -O1 and -O2 is meaningless!").
    • -
    • forward - forward an option unchanged. Example: (forward "Wall").
    • -
    • forward_as - Change the name of an option, but forward the -argument unchanged. +
    • forward - Forward the option unchanged. +Example: (forward "Wall").
    • +
    • forward_as - Change the option's name, but forward the argument +unchanged. Example: (forward_as "O0", "--disable-optimization").
    • -
    • output_suffix - modify the output suffix of this -tool. +
    • forward_value - Forward only option's value. Cannot be used with switch +options (since they don't have values), but works fine with lists. +Example: (forward_value "Wa,").
    • +
    • forward_transformed_value - As above, but applies a hook to the +option's value before forwarding (see below). When +forward_transformed_value is applied to a list +option, the hook must have signature +std::string hooks::HookName (const std::vector<std::string>&). +Example: (forward_transformed_value "m", "ConvertToMAttr").
    • +
    • output_suffix - Modify the output suffix of this tool. Example: (output_suffix "i").
    • -
    • stop_compilation - stop compilation after this tool processes -its input. Used without arguments.
    • -
    • unpack_values - used for for splitting and forwarding -comma-separated lists of options, e.g. -Wa,-foo=bar,-baz is -converted to -foo=bar -baz and appended to the tool invocation -command. -Example: (unpack_values "Wa,").
    • +
    • stop_compilation - Stop compilation after this tool processes its +input. Used without arguments. +Example: (stop_compilation).
  • @@ -579,7 +587,7 @@ Example:
    -

    Language map

    +

    Language map

    If you are adding support for a new language to LLVMC, you'll need to modify the language map, which defines mappings from file extensions to language names. It is used to choose the proper toolchain(s) for a @@ -602,7 +610,7 @@ multiple output languages, for nodes &qu output languages should match. This is enforced at compile-time.

    -

    Option preprocessor

    +

    Option preprocessor

    It is sometimes useful to run error-checking code before processing the compilation graph. For example, if optimization options "-O1" and "-O2" are implemented as switches, we might want to output a warning if the user invokes @@ -629,9 +637,9 @@ in unset_option also works on lists.

    -

    More advanced topics

    +

    More advanced topics

    -

    Hooks and environment variables

    +

    Hooks and environment variables

    Normally, LLVMC executes programs from the system PATH. Sometimes, this is not sufficient: for example, we may want to specify tool paths or names in the configuration file. This can be easily achieved via @@ -664,7 +672,7 @@ the

    -

    How plugins are loaded

    +

    How plugins are loaded

    It is possible for LLVMC plugins to depend on each other. For example, one can create edges between nodes defined in some other plugin. To make this work, however, that plugin should be loaded first. To @@ -680,7 +688,7 @@ with 0. Therefore, the plugin with the h loaded last.

    -

    Debugging

    +

    Debugging

    When writing LLVMC plugins, it can be useful to get a visual view of the resulting compilation graph. This can be achieved via the command line option --view-graph. This command assumes that Graphviz and @@ -696,7 +704,7 @@ perform any compilation tasks and return errors as its status code.

    -

    Conditioning on the executable name

    +

    Conditioning on the executable name

    For now, the executable name (the value passed to the driver in argv[0]) is accessible only in the C++ code (i.e. hooks). Use the following code:

    @@ -704,12 +712,16 @@ namespace llvmc {
     extern const char* ProgramName;
     }
     
    +namespace hooks {
    +
     std::string MyHook() {
     //...
     if (strcmp(ProgramName, "mydriver") == 0) {
        //...
     
     }
    +
    +} // end namespace hooks
     

    In general, you're encouraged not to make the behaviour dependent on the executable file name, and use command-line switches instead. See for example how @@ -727,7 +739,7 @@ the Mikhail Glushenkov
    LLVM Compiler Infrastructure
    -Last modified: $Date: 2009-10-26 02:35:46 +0100 (Mon, 26 Oct 2009) $ +Last modified: $Date: 2009-12-07 19:26:24 +0100 (Mon, 07 Dec 2009) $

    Modified: vendor/llvm/dist/docs/GettingStarted.html ============================================================================== --- vendor/llvm/dist/docs/GettingStarted.html Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/docs/GettingStarted.html Tue Dec 15 18:09:07 2009 (r200581) @@ -252,7 +252,8 @@ software you will need.

    Cygwin/Win32 - x861,8 + x861,8, + 11 GCC 3.4.X, binutils 2.15 @@ -331,6 +332,9 @@ up before any Windows-based versions such as Strawberry Perl and ActivePerl, as these have Windows-specifics that will cause the build to fail. +
  • In general, LLVM modules requiring dynamic linking can + not be built on Windows. However, you can build LLVM tools using + "make tools-only".
  • @@ -1636,7 +1640,7 @@ out:

    Chris Lattner
    Reid Spencer
    The LLVM Compiler Infrastructure
    - Last modified: $Date: 2009-11-04 07:15:28 +0100 (Wed, 04 Nov 2009) $ + Last modified: $Date: 2009-12-09 18:26:02 +0100 (Wed, 09 Dec 2009) $ Modified: vendor/llvm/dist/docs/LangRef.html ============================================================================== --- vendor/llvm/dist/docs/LangRef.html Tue Dec 15 16:15:14 2009 (r200580) +++ vendor/llvm/dist/docs/LangRef.html Tue Dec 15 18:09:07 2009 (r200581) @@ -5,7 +5,7 @@ LLVM Assembly Language Reference Manual - @@ -54,7 +54,7 @@
  • Type System
    1. Type Classifications
    2. -
    3. Primitive Types +
    4. Primitive Types
      1. Integer Type
      2. Floating Point Types
      3. @@ -576,7 +576,7 @@ define i32 @main() { Symbols with "common" linkage are merged in the same way as weak symbols, and they may not be deleted if unreferenced. common symbols may not have an explicit section, - must have a zero initializer, and may not be marked 'constant'. Functions and aliases may not have common linkage. @@ -843,7 +843,7 @@ define i32 @main() {

        LLVM function declarations consist of the "declare" keyword, an optional linkage type, an optional - visibility style, an optional + visibility style, an optional calling convention, a return type, an optional parameter attribute for the return type, a function name, a possibly empty list of arguments, an optional alignment, and an @@ -1192,7 +1192,7 @@ target datalayout = "layout specifica location.

        p:size:abi:pref
        -
        This specifies the size of a pointer and its abi and +
        This specifies the size of a pointer and its abi and preferred alignments. All sizes are in bits. Specifying the pref alignment is optional. If omitted, the preceding : should be omitted too.
        @@ -1202,11 +1202,11 @@ target datalayout = "layout specifica size. The value of size must be in the range [1,2^23).
        vsize:abi:pref
        -
        This specifies the alignment for a vector type of a given bit +
        This specifies the alignment for a vector type of a given bit size.
        fsize:abi:pref
        -
        This specifies the alignment for a floating point type of a given bit +
        This specifies the alignment for a floating point type of a given bit size. The value of size must be either 32 (float) or 64 (double).
        @@ -1222,7 +1222,7 @@ target datalayout = "layout specifica
        This specifies a set of native integer widths for the target CPU in bits. For example, it might contain "n32" for 32-bit PowerPC, "n32:64" for PowerPC 64, or "n8:16:32:64" for X86-64. Elements of - this set are considered to support most general arithmetic + this set are considered to support most general arithmetic operations efficiently.
        @@ -1616,16 +1616,16 @@ Classifications float (i16 signext, i32 *) * - Pointer to a function that takes - an i16 that should be sign extended and a - pointer to i32, returning + Pointer to a function that takes + an i16 that should be sign extended and a + pointer to i32, returning float. i32 (i8*, ...) - A vararg function that takes at least one - pointer to i8 (char in C), - which returns an integer. This is the signature for printf in + A vararg function that takes at least one + pointer to i8 (char in C), + which returns an integer. This is the signature for printf in LLVM. @@ -2054,9 +2054,9 @@ Unsafe: For example, if "%X" has a zero bit, then the output of the 'and' operation will always be a zero, no matter what the corresponding bit from the undef is. As such, it is unsafe to optimize or assume that the result of the and is undef. -However, it is safe to assume that all bits of the undef could be 0, and -optimize the and to 0. Likewise, it is safe to assume that all the bits of -the undef operand to the or could be set, allowing the or to be folded to +However, it is safe to assume that all bits of the undef could be 0, and +optimize the and to 0. Likewise, it is safe to assume that all the bits of +the undef operand to the or could be set, allowing the or to be folded to -1.

        @@ -2086,7 +2086,7 @@ the optimizer is allowed to assume that
           %A = xor undef, undef
        -  
        +
           %B = undef
           %C = xor %B, %B
         
        @@ -2137,7 +2137,7 @@ does not execute at all.  This allows us
         it: since the undefined operation "can't happen", the optimizer can assume that
         it occurs in dead code.
         

        - +
         a:  store undef -> %X
        @@ -2149,7 +2149,7 @@ b: unreachable
         

        These examples reiterate the fdiv example: a store "of" an undefined value -can be assumed to not have any effect: we can assume that the value is +can be assumed to not have any effect: we can assume that the value is overwritten with bits that happen to match what was already there. However, a store "to" an undefined location could clobber arbitrary memory, therefore, it has undefined behavior.

        @@ -2166,7 +2166,7 @@ has undefined behavior.

        The 'blockaddress' constant computes the address of the specified basic block in the specified function, and always has an i8* type. Taking the address of the entry block is illegal.

        - +

        This value only has defined behavior when used as an operand to the 'indirectbr' instruction or for comparisons against null. Pointer equality tests between labels addresses is undefined @@ -2175,7 +2175,7 @@ has undefined behavior.

        pointer sized value as long as the bits are not inspected. This allows ptrtoint and arithmetic to be performed on these values so long as the original value is reconstituted before the indirectbr.

        - +

        Finally, some targets may provide defined semantics when using the value as the operand to an inline assembly, but that is target specific. @@ -2703,7 +2703,7 @@ IfUnequal: rest of the arguments indicate the full set of possible destinations that the address may point to. Blocks are allowed to occur multiple times in the destination list, though this isn't particularly useful.

        - +

        This destination list is required so that dataflow analysis has an accurate understanding of the CFG.

        @@ -3060,7 +3060,7 @@ Instruction

        The two arguments to the 'mul' instruction must be integer or vector of integer values. Both arguments must have identical types.

        - +
        Semantics:

        The value produced is the integer product of the two operands.

        @@ -3132,7 +3132,7 @@ Instruction

        The 'udiv' instruction returns the quotient of its two operands.

        Arguments:
        -

        The two arguments to the 'udiv' instruction must be +

        The two arguments to the 'udiv' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3167,7 +3167,7 @@ Instruction

        The 'sdiv' instruction returns the quotient of its two operands.

        Arguments:
        -

        The two arguments to the 'sdiv' instruction must be +

        The two arguments to the 'sdiv' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3238,7 +3238,7 @@ Instruction division of its two arguments.

        Arguments:
        -

        The two arguments to the 'urem' instruction must be +

        The two arguments to the 'urem' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3278,7 +3278,7 @@ Instruction elements must be integers.

        Arguments:
        -

        The two arguments to the 'srem' instruction must be +

        The two arguments to the 'srem' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3373,7 +3373,7 @@ Instruction

        Both arguments to the 'shl' instruction must be the same integer or vector of integer type. 'op2' is treated as an unsigned value.

        - +
        Semantics:

        The value produced is op1 * 2op2 mod 2n, where n is the width of the result. If op2 @@ -3409,7 +3409,7 @@ Instruction operand shifted to the right a specified number of bits with zero fill.

        Arguments:
        -

        Both arguments to the 'lshr' instruction must be the same +

        Both arguments to the 'lshr' instruction must be the same integer or vector of integer type. 'op2' is treated as an unsigned value.

        @@ -3449,7 +3449,7 @@ Instruction extension.

        Arguments:
        -

        Both arguments to the 'ashr' instruction must be the same +

        Both arguments to the 'ashr' instruction must be the same integer or vector of integer type. 'op2' is treated as an unsigned value.

        @@ -3489,7 +3489,7 @@ Instruction operands.

        Arguments:
        -

        The two arguments to the 'and' instruction must be +

        The two arguments to the 'and' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3548,7 +3548,7 @@ Instruction two operands.

        Arguments:
        -

        The two arguments to the 'or' instruction must be +

        The two arguments to the 'or' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3611,7 +3611,7 @@ Instruction complement" operation, which is the "~" operator in C.

        Arguments:
        -

        The two arguments to the 'xor' instruction must be +

        The two arguments to the 'xor' instruction must be integer or vector of integer values. Both arguments must have identical types.

        @@ -3659,7 +3659,7 @@ Instruction -
        + @@ -3782,20 +3782,20 @@ Instruction
        Example:
        -  <result> = shufflevector <4 x i32> %v1, <4 x i32> %v2, 
        +  <result> = shufflevector <4 x i32> %v1, <4 x i32> %v2,
                                   <4 x i32> <i32 0, i32 4, i32 1, i32 5>  ; yields <4 x i32>
        -  <result> = shufflevector <4 x i32> %v1, <4 x i32> undef, 
        +  <result> = shufflevector <4 x i32> %v1, <4 x i32> undef,
                                   <4 x i32> <i32 0, i32 1, i32 2, i32 3>  ; yields <4 x i32> - Identity shuffle.
        -  <result> = shufflevector <8 x i32> %v1, <8 x i32> undef, 
        +  <result> = shufflevector <8 x i32> %v1, <8 x i32> undef,
                                   <4 x i32> <i32 0, i32 1, i32 2, i32 3>  ; yields <4 x i32>
        -  <result> = shufflevector <4 x i32> %v1, <4 x i32> %v2, 
        +  <result> = shufflevector <4 x i32> %v1, <4 x i32> %v2,
                                   <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7 >  ; yields <8 x i32>
         
        -
        + @@ -3880,7 +3880,7 @@ Instruction
        -
        + @@ -4243,15 +4243,15 @@ entry:
        Overview:
        -

        The 'zext' instruction zero extends its operand to type +

        The 'zext' instruction zero extends its operand to type ty2.

        Arguments:
        -

        The 'zext' instruction takes a value to cast, which must be of +

        The 'zext' instruction takes a value to cast, which must be of integer type, and a type to cast it to, which must also be of integer type. The bit size of the - value must be smaller than the bit size of the destination type, + value must be smaller than the bit size of the destination type, ty2.

        Semantics:
        @@ -4283,10 +4283,10 @@ entry:

        The 'sext' sign extends value to the type ty2.

        Arguments:
        -

        The 'sext' instruction takes a value to cast, which must be of +

        The 'sext' instruction takes a value to cast, which must be of integer type, and a type to cast it to, which must also be of integer type. The bit size of the - value must be smaller than the bit size of the destination type, + value must be smaller than the bit size of the destination type, ty2.

        Semantics:
        @@ -4324,12 +4324,12 @@ entry:

        The 'fptrunc' instruction takes a floating point value to cast and a floating point type to cast it to. The size of value must be larger than the size of - ty2. This implies that fptrunc cannot be used to make a + ty2. This implies that fptrunc cannot be used to make a no-op cast.

        Semantics:

        The 'fptrunc' instruction truncates a value from a larger - floating point type to a smaller + floating point type to a smaller floating point type. If the value cannot fit within the destination type, ty2, then the results are undefined.

        @@ -4358,7 +4358,7 @@ entry: floating point value.

        Arguments:
        -

        The 'fpext' instruction takes a +

        The 'fpext' instruction takes a floating point value to cast, and a floating point type to cast it to. The source type must be smaller than the destination type.

        @@ -4401,7 +4401,7 @@ entry: vector integer type with the same number of elements as ty

        Semantics:
        -

        The 'fptoui' instruction converts its +

        The 'fptoui' instruction converts its floating point operand into the nearest (rounding towards zero) unsigned integer value. If the value cannot fit in ty2, the results are undefined.

        @@ -4427,7 +4427,7 @@ entry:
        Overview:
        -

        The 'fptosi' instruction converts +

        The 'fptosi' instruction converts floating point value to type ty2.

        @@ -4439,7 +4439,7 @@ entry: vector integer type with the same number of elements as ty

        Semantics:
        -

        The 'fptosi' instruction converts its +

        The 'fptosi' instruction converts its floating point operand into the nearest (rounding towards zero) signed integer value. If the value cannot fit in ty2, the results are undefined.

        @@ -4636,7 +4636,7 @@ entry:
           %X = bitcast i8 255 to i8              ; yields i8 :-1
           %Y = bitcast i32* %x to sint*          ; yields sint*:%x
        -  %Z = bitcast <2 x int> %V to i64;      ; yields i64: %V   
        +  %Z = bitcast <2 x int> %V to i64;      ; yields i64: %V
         
        @@ -4696,11 +4696,11 @@ entry: result, as follows:

          -
        1. eq: yields true if the operands are equal, +
        2. eq: yields true if the operands are equal, false otherwise. No sign interpretation is necessary or performed.
        3. -
        4. ne: yields true if the operands are unequal, +
        5. ne: yields true if the operands are unequal, false otherwise. No sign interpretation is necessary or performed.
        6. @@ -4817,42 +4817,42 @@ entry:
          1. false: always yields false, regardless of operands.
          2. -
          3. oeq: yields true if both operands are not a QNAN and +
          4. oeq: yields true if both operands are not a QNAN and op1 is equal to op2.
          5. ogt: yields true if both operands are not a QNAN and op1 is greather than op2.
          6. -
          7. oge: yields true if both operands are not a QNAN and +
          8. oge: yields true if both operands are not a QNAN and op1 is greater than or equal to op2.
          9. -
          10. olt: yields true if both operands are not a QNAN and +
          11. olt: yields true if both operands are not a QNAN and op1 is less than op2.
          12. -
          13. ole: yields true if both operands are not a QNAN and +
          14. ole: yields true if both operands are not a QNAN and op1 is less than or equal to op2.
          15. -
          16. one: yields true if both operands are not a QNAN and +
          17. one: yields true if both operands are not a QNAN and op1 is not equal to op2.
          18. ord: yields true if both operands are not a QNAN.
          19. -
          20. ueq: yields true if either operand is a QNAN or +
          21. ueq: yields true if either operand is a QNAN or op1 is equal to op2.
          22. -
          23. ugt: yields true if either operand is a QNAN or +
          24. ugt: yields true if either operand is a QNAN or op1 is greater than op2.
          25. -
          26. uge: yields true if either operand is a QNAN or +
          27. uge: yields true if either operand is a QNAN or op1 is greater than or equal to op2.
          28. -
          29. ult: yields true if either operand is a QNAN or +
          30. ult: yields true if either operand is a QNAN or op1 is less than op2.
          31. -
          32. ule: yields true if either operand is a QNAN or +
          33. ule: yields true if either operand is a QNAN or op1 is less than or equal to op2.
          34. -
          35. une: yields true if either operand is a QNAN or +
          36. une: yields true if either operand is a QNAN or op1 is not equal to op2.
          37. uno: yields true if either operand is a QNAN.
          38. @@ -5144,7 +5144,7 @@ freestanding environments and non-C-base suffix is required. Because the argument's type is matched against the return type, it does not require its own name suffix.

            -

            To learn how to add an intrinsic function, please see the +

            To learn how to add an intrinsic function, please see the Extending LLVM Guide.

            @@ -6579,11 +6579,11 @@ LLVM.

            • ll: All loads before the barrier must complete before any load after the barrier begins.
            • -
            • ls: All loads before the barrier must complete before any +
            • ls: All loads before the barrier must complete before any store after the barrier begins.
            • -
            • ss: All stores before the barrier must complete before any +
            • ss: All stores before the barrier must complete before any store after the barrier begins.
            • -
            • sl: All stores before the barrier must complete before any +
            • sl: All stores before the barrier must complete before any load after the barrier begins.
            @@ -6796,7 +6796,7 @@ LLVM.

            Overview:
            -

            This intrinsic subtracts delta to the value stored in memory at +

            This intrinsic subtracts delta to the value stored in memory at ptr. It yields the original value at ptr.

            Arguments:
            @@ -6952,7 +6952,7 @@ LLVM.

            Overview:
            -

            These intrinsics takes the signed or unsigned minimum or maximum of +

            These intrinsics takes the signed or unsigned minimum or maximum of delta and the value stored in memory at ptr. It yields the original value at ptr.

            @@ -7262,24 +7262,44 @@ LLVM.

            Overview:
            -

            The llvm.objectsize intrinsic returns the constant number of bytes - from ptr to the end of the object ptr points to if it - can deduce this at compile time. If there are any side-effects in evaluating - the argument or it cannot deduce which objects ptr points to at compile - time the intrinsic returns (size_t) -1 for type 0 - or 1 and (size_t) 0 for type 2 or 3.

            +

            The llvm.objectsize intrinsic is designed to provide information + to the optimizers to either discover at compile time either a) when an + operation like memcpy will either overflow a buffer that corresponds to + an object, or b) to determine that a runtime check for overflow isn't + necessary. An object in this context means an allocation of a + specific type.

            Arguments:

            The llvm.objectsize intrinsic takes two arguments. The first - argument is a pointer to the object ptr and an integer type. - type is an integer ranging from 0 to 3. The lsb corresponds to - a return value based on whole objects, the second bit whether or not we - return the maximum or minimum remaining bytes computed.

            + argument is a pointer to the object ptr. The second argument + is an integer type which ranges from 0 to 3. The first bit in + the type corresponds to a return value based on whole objects, + and the second bit whether or not we return the maximum or minimum + remaining bytes computed.

            + + + + + + + + + + + + + + + + + +
            00whole object, maximum number of bytes
            01partial object, maximum number of bytes
            10whole object, minimum number of bytes
            11partial object, minimum number of bytes
            Semantics:

            The llvm.objectsize intrinsic is lowered to either a constant - representing the size of the object concerned or (size_t) -1 if - it cannot be determined at compile time.

            + representing the size of the object concerned or i32/i64 -1 or 0 + (depending on the type argument if the size cannot be determined *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Tue Dec 15 18:49:49 2009 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 160241065696; Tue, 15 Dec 2009 18:49:49 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0075F8FC49; Tue, 15 Dec 2009 18:49:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBFInmvk071893; Tue, 15 Dec 2009 18:49:48 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBFInm8Q071877; Tue, 15 Dec 2009 18:49:48 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <200912151849.nBFInm8Q071877@svn.freebsd.org> From: Roman Divacky Date: Tue, 15 Dec 2009 18:49:48 +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: r200583 - in vendor/clang/dist: . clang.xcodeproj docs include/clang-c include/clang/AST include/clang/Analysis include/clang/Analysis/PathSensitive include/clang/Analysis/Support inclu... X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Dec 2009 18:49:49 -0000 Author: rdivacky Date: Tue Dec 15 18:49:47 2009 New Revision: 200583 URL: http://svn.freebsd.org/changeset/base/200583 Log: Update clang to 91430. Added: vendor/clang/dist/include/clang/Index/CallGraph.h vendor/clang/dist/lib/Analysis/BuiltinFunctionChecker.cpp vendor/clang/dist/lib/Analysis/NoReturnFunctionChecker.cpp vendor/clang/dist/lib/Analysis/OSAtomicChecker.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGRTTI.cpp vendor/clang/dist/lib/Index/CallGraph.cpp vendor/clang/dist/lib/Parse/RAIIObjectsForParser.h vendor/clang/dist/lib/Sema/SemaInit.h vendor/clang/dist/test/Analysis/NSString-failed-cases.m vendor/clang/dist/test/Analysis/blocks.m vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.argdep/p3.cpp vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.allocation/p1.cpp vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.deallocation/p1.cpp vendor/clang/dist/test/CXX/class.access/class.access.dcl/p1.cpp vendor/clang/dist/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p13.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p8.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.list/basic.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp vendor/clang/dist/test/CodeGen/decl.c vendor/clang/dist/test/CodeGen/palignr.c vendor/clang/dist/test/CodeGen/vfprintf.c vendor/clang/dist/test/CodeGenCXX/constructor-convert.cpp vendor/clang/dist/test/CodeGenCXX/conversion-operator-base.cpp vendor/clang/dist/test/CodeGenCXX/copy-assign-synthesis-3.cpp vendor/clang/dist/test/CodeGenCXX/copy-constructor-synthesis-2.cpp vendor/clang/dist/test/CodeGenCXX/default-constructor-template-member.cpp vendor/clang/dist/test/CodeGenCXX/elide-call-reference.cpp vendor/clang/dist/test/CodeGenCXX/enum.cpp vendor/clang/dist/test/CodeGenCXX/eval-recursive-constant.cpp vendor/clang/dist/test/CodeGenCXX/exceptions.cpp vendor/clang/dist/test/CodeGenCXX/function-template-explicit-specialization.cpp vendor/clang/dist/test/CodeGenCXX/global-llvm-constant.cpp vendor/clang/dist/test/CodeGenCXX/inline-functions.cpp vendor/clang/dist/test/CodeGenCXX/key-function-vtable.cpp vendor/clang/dist/test/CodeGenCXX/mangle-extern-local.cpp vendor/clang/dist/test/CodeGenCXX/mangle-unnamed.cpp vendor/clang/dist/test/CodeGenCXX/member-call-parens.cpp vendor/clang/dist/test/CodeGenCXX/member-pointer-type-convert.cpp vendor/clang/dist/test/CodeGenCXX/reference-init.cpp vendor/clang/dist/test/CodeGenCXX/rtti-linkage.cpp vendor/clang/dist/test/CodeGenCXX/static-member-variable-explicit-specialization.cpp vendor/clang/dist/test/CodeGenCXX/template-linkage.cpp vendor/clang/dist/test/CodeGenCXX/throw-expressions.cpp vendor/clang/dist/test/CodeGenCXX/unary-type-trait.cpp vendor/clang/dist/test/CodeGenCXX/virt-call-offsets.cpp vendor/clang/dist/test/CodeGenCXX/virt-canonical-decl.cpp vendor/clang/dist/test/CodeGenCXX/virt-template-vtable.cpp vendor/clang/dist/test/CodeGenCXX/virt-thunk-reference.cpp vendor/clang/dist/test/CodeGenCXX/virtual-destructor-calls.cpp vendor/clang/dist/test/CodeGenCXX/virtual-destructor-synthesis.cpp vendor/clang/dist/test/CodeGenCXX/virtual-implicit-copy-assignment.cpp vendor/clang/dist/test/CodeGenCXX/virtual-inherited-destructor.cpp vendor/clang/dist/test/CodeGenCXX/vtable-key-function.cpp vendor/clang/dist/test/CodeGenCXX/vtable-linkage.cpp vendor/clang/dist/test/CodeGenObjC/id-isa-codegen.m vendor/clang/dist/test/CodeGenObjC/nested-rethrow.m vendor/clang/dist/test/CodeGenObjC/property-list-in-class.m vendor/clang/dist/test/CodeGenObjCXX/ vendor/clang/dist/test/CodeGenObjCXX/mangle.mm vendor/clang/dist/test/Index/Inputs/remap-complete-to.c vendor/clang/dist/test/Index/cindex-from-source.m vendor/clang/dist/test/Index/cindex-on-invalid.m vendor/clang/dist/test/Index/complete-at-directives.m vendor/clang/dist/test/Index/complete-at-exprstmt.m vendor/clang/dist/test/Index/remap-complete.c vendor/clang/dist/test/Lexer/has_feature_exceptions.cpp vendor/clang/dist/test/Lexer/has_feature_rtti.cpp vendor/clang/dist/test/Lexer/msdos-cpm-eof.c vendor/clang/dist/test/Misc/Inputs/ vendor/clang/dist/test/Misc/Inputs/remapped-file vendor/clang/dist/test/Misc/Inputs/remapped-file-2 vendor/clang/dist/test/Misc/Inputs/remapped-file-3 vendor/clang/dist/test/Misc/remap-file.c vendor/clang/dist/test/PCH/source-manager-stack.c vendor/clang/dist/test/Parser/cxx-extern-c-array.cpp vendor/clang/dist/test/Parser/cxx-stmt.cpp vendor/clang/dist/test/SemaCXX/array-bound-merge.cpp vendor/clang/dist/test/SemaCXX/attr-noreturn.cpp vendor/clang/dist/test/SemaCXX/implicit-member-functions.cpp vendor/clang/dist/test/SemaCXX/implicit-virtual-member-functions.cpp vendor/clang/dist/test/SemaCXX/literal-type.cpp vendor/clang/dist/test/SemaCXX/member-expr-anonymous-union.cpp vendor/clang/dist/test/SemaCXX/prefetch-enum.cpp vendor/clang/dist/test/SemaCXX/virtual-member-functions-key-function.cpp vendor/clang/dist/test/SemaCXX/warn-missing-prototypes.cpp vendor/clang/dist/test/SemaObjC/method-arg-qualifier-warning.m vendor/clang/dist/test/SemaObjC/restrict-id-type.m vendor/clang/dist/test/SemaObjCXX/category-lookup.mm vendor/clang/dist/test/SemaObjCXX/composite-objc-pointertype.mm vendor/clang/dist/test/SemaObjCXX/conditional-expr.mm vendor/clang/dist/test/SemaObjCXX/cstyle-cast.mm vendor/clang/dist/test/SemaObjCXX/standard-conversion-to-bool.mm vendor/clang/dist/test/SemaTemplate/instantiate-default-assignment-operator.cpp vendor/clang/dist/test/SemaTemplate/instantiate-enum-2.cpp vendor/clang/dist/test/SemaTemplate/instantiate-exception-spec.cpp vendor/clang/dist/test/SemaTemplate/template-class-traits.cpp vendor/clang/dist/test/SemaTemplate/virtual-member-functions.cpp vendor/clang/dist/utils/TestUtils/ vendor/clang/dist/utils/TestUtils/deep-stack.py (contents, props changed) vendor/clang/dist/utils/TestUtils/pch-test.pl (contents, props changed) Deleted: vendor/clang/dist/include/clang/Analysis/CallGraph.h vendor/clang/dist/lib/Analysis/CallGraph.cpp vendor/clang/dist/lib/CodeGen/CGRtti.cpp vendor/clang/dist/lib/Parse/ExtensionRAIIObject.h vendor/clang/dist/test/CodeGen/cast-to-union.c vendor/clang/dist/test/CodeGen/string-init.c vendor/clang/dist/test/Parser/cxx-try.cpp vendor/clang/dist/tools/clang-cc/ Modified: vendor/clang/dist/NOTES.txt vendor/clang/dist/TODO.txt vendor/clang/dist/clang.xcodeproj/project.pbxproj vendor/clang/dist/docs/BlockImplementation.txt vendor/clang/dist/docs/LanguageExtensions.html vendor/clang/dist/docs/PCHInternals.html vendor/clang/dist/docs/PTHInternals.html vendor/clang/dist/docs/UsersManual.html vendor/clang/dist/docs/libIndex.html vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/CanonicalType.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclBase.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclContextInternals.h vendor/clang/dist/include/clang/AST/DeclNodes.def vendor/clang/dist/include/clang/AST/DeclObjC.h vendor/clang/dist/include/clang/AST/DeclTemplate.h vendor/clang/dist/include/clang/AST/DeclarationName.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExprCXX.h vendor/clang/dist/include/clang/AST/RecordLayout.h vendor/clang/dist/include/clang/AST/StmtCXX.h vendor/clang/dist/include/clang/AST/TemplateBase.h vendor/clang/dist/include/clang/AST/TemplateName.h vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/TypeLocBuilder.h vendor/clang/dist/include/clang/AST/TypeLocVisitor.h vendor/clang/dist/include/clang/AST/TypeNodes.def vendor/clang/dist/include/clang/AST/TypeOrdering.h vendor/clang/dist/include/clang/Analysis/PathDiagnostic.h vendor/clang/dist/include/clang/Analysis/PathSensitive/AnalysisContext.h vendor/clang/dist/include/clang/Analysis/PathSensitive/AnalysisManager.h vendor/clang/dist/include/clang/Analysis/PathSensitive/BugType.h vendor/clang/dist/include/clang/Analysis/PathSensitive/Checker.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRExprEngine.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRState.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRTransferFuncs.h vendor/clang/dist/include/clang/Analysis/PathSensitive/MemRegion.h vendor/clang/dist/include/clang/Analysis/PathSensitive/Store.h vendor/clang/dist/include/clang/Analysis/PathSensitive/SymbolManager.h vendor/clang/dist/include/clang/Analysis/ProgramPoint.h vendor/clang/dist/include/clang/Analysis/Support/BumpVector.h vendor/clang/dist/include/clang/Basic/Builtins.def vendor/clang/dist/include/clang/Basic/BuiltinsX86.def vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticGroups.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/FileManager.h vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/LangOptions.h vendor/clang/dist/include/clang/Basic/PartialDiagnostic.h vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/SourceManager.h vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Basic/TypeTraits.h vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/Job.h vendor/clang/dist/include/clang/Driver/OptParser.td vendor/clang/dist/include/clang/Driver/OptTable.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/AnalysisConsumer.h vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/CompilerInvocation.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.h vendor/clang/dist/include/clang/Frontend/HeaderSearchOptions.h vendor/clang/dist/include/clang/Frontend/PCHBitCodes.h vendor/clang/dist/include/clang/Frontend/PCHReader.h vendor/clang/dist/include/clang/Frontend/PCHWriter.h vendor/clang/dist/include/clang/Frontend/PreprocessorOptions.h vendor/clang/dist/include/clang/Index/Entity.h vendor/clang/dist/include/clang/Index/GlobalSelector.h vendor/clang/dist/include/clang/Lex/Lexer.h vendor/clang/dist/include/clang/Lex/Preprocessor.h vendor/clang/dist/include/clang/Parse/Action.h vendor/clang/dist/include/clang/Parse/DeclSpec.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Sema/ExternalSemaSource.h vendor/clang/dist/include/clang/Sema/SemaConsumer.h vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/CXXInheritance.cpp 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/DeclObjC.cpp vendor/clang/dist/lib/AST/DeclPrinter.cpp vendor/clang/dist/lib/AST/DeclTemplate.cpp vendor/clang/dist/lib/AST/DeclarationName.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprCXX.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.h vendor/clang/dist/lib/AST/StmtDumper.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/StmtProfile.cpp vendor/clang/dist/lib/AST/TemplateBase.cpp vendor/clang/dist/lib/AST/TemplateName.cpp vendor/clang/dist/lib/AST/Type.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/Analysis/AnalysisContext.cpp vendor/clang/dist/lib/Analysis/BasicStore.cpp vendor/clang/dist/lib/Analysis/BugReporter.cpp vendor/clang/dist/lib/Analysis/CFG.cpp vendor/clang/dist/lib/Analysis/CFRefCount.cpp vendor/clang/dist/lib/Analysis/CMakeLists.txt vendor/clang/dist/lib/Analysis/CallAndMessageChecker.cpp vendor/clang/dist/lib/Analysis/CheckDeadStores.cpp vendor/clang/dist/lib/Analysis/CheckSecuritySyntaxOnly.cpp vendor/clang/dist/lib/Analysis/Checker.cpp vendor/clang/dist/lib/Analysis/GRExprEngine.cpp vendor/clang/dist/lib/Analysis/GRExprEngineInternalChecks.h vendor/clang/dist/lib/Analysis/GRState.cpp vendor/clang/dist/lib/Analysis/MallocChecker.cpp vendor/clang/dist/lib/Analysis/MemRegion.cpp vendor/clang/dist/lib/Analysis/PathDiagnostic.cpp vendor/clang/dist/lib/Analysis/RegionStore.cpp vendor/clang/dist/lib/Analysis/Store.cpp vendor/clang/dist/lib/Analysis/SymbolManager.cpp vendor/clang/dist/lib/Analysis/ValueManager.cpp vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/FileManager.cpp vendor/clang/dist/lib/Basic/SourceManager.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.cpp vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGCall.cpp vendor/clang/dist/lib/CodeGen/CGClass.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.h vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGException.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist/lib/CodeGen/CGExprCXX.cpp vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp vendor/clang/dist/lib/CodeGen/CGObjCMac.cpp vendor/clang/dist/lib/CodeGen/CGRecordLayoutBuilder.cpp vendor/clang/dist/lib/CodeGen/CGVtable.cpp vendor/clang/dist/lib/CodeGen/CGVtable.h vendor/clang/dist/lib/CodeGen/CMakeLists.txt vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.h vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/GlobalDecl.h vendor/clang/dist/lib/CodeGen/Mangle.cpp vendor/clang/dist/lib/CodeGen/Mangle.h vendor/clang/dist/lib/CodeGen/TargetABIInfo.cpp vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/DriverOptions.cpp vendor/clang/dist/lib/Driver/Job.cpp vendor/clang/dist/lib/Driver/OptTable.cpp vendor/clang/dist/lib/Driver/ToolChains.cpp vendor/clang/dist/lib/Driver/Tools.cpp vendor/clang/dist/lib/Driver/Types.cpp vendor/clang/dist/lib/Frontend/ASTConsumers.cpp vendor/clang/dist/lib/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/Frontend/Backend.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/DiagChecker.cpp vendor/clang/dist/lib/Frontend/FixItRewriter.cpp vendor/clang/dist/lib/Frontend/FrontendAction.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/HTMLPrint.cpp vendor/clang/dist/lib/Frontend/InitHeaderSearch.cpp vendor/clang/dist/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist/lib/Frontend/LangStandards.cpp vendor/clang/dist/lib/Frontend/PCHReader.cpp vendor/clang/dist/lib/Frontend/PCHReaderDecl.cpp vendor/clang/dist/lib/Frontend/PCHReaderStmt.cpp vendor/clang/dist/lib/Frontend/PCHWriter.cpp vendor/clang/dist/lib/Frontend/PCHWriterDecl.cpp vendor/clang/dist/lib/Frontend/PCHWriterStmt.cpp vendor/clang/dist/lib/Frontend/PlistDiagnostics.cpp vendor/clang/dist/lib/Frontend/PrintPreprocessedOutput.cpp vendor/clang/dist/lib/Frontend/RewriteObjC.cpp vendor/clang/dist/lib/Frontend/TextDiagnosticPrinter.cpp vendor/clang/dist/lib/Headers/limits.h vendor/clang/dist/lib/Headers/tmmintrin.h vendor/clang/dist/lib/Index/ASTVisitor.h vendor/clang/dist/lib/Index/CMakeLists.txt vendor/clang/dist/lib/Index/ResolveLocation.cpp vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/MacroArgs.cpp vendor/clang/dist/lib/Lex/MacroArgs.h vendor/clang/dist/lib/Lex/PPDirectives.cpp vendor/clang/dist/lib/Lex/PPExpressions.cpp vendor/clang/dist/lib/Lex/PPLexerChange.cpp vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp vendor/clang/dist/lib/Lex/Preprocessor.cpp vendor/clang/dist/lib/Lex/TokenLexer.cpp vendor/clang/dist/lib/Parse/DeclSpec.cpp vendor/clang/dist/lib/Parse/MinimalAction.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/ParseExprCXX.cpp vendor/clang/dist/lib/Parse/ParseObjc.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/ParseTemplate.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Sema/CodeCompleteConsumer.cpp vendor/clang/dist/lib/Sema/Lookup.h vendor/clang/dist/lib/Sema/ParseAST.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/Sema.h vendor/clang/dist/lib/Sema/SemaAttr.cpp vendor/clang/dist/lib/Sema/SemaCXXCast.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCodeComplete.cpp 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/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExceptionSpec.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaOverload.h 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/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/test/Analysis/CFDateGC.m vendor/clang/dist/test/Analysis/CFNumber.c vendor/clang/dist/test/Analysis/CFRetainRelease_NSAssertionHandler.m vendor/clang/dist/test/Analysis/CGColorSpace.c vendor/clang/dist/test/Analysis/CheckNSError.m vendor/clang/dist/test/Analysis/MissingDealloc.m vendor/clang/dist/test/Analysis/NSPanel.m vendor/clang/dist/test/Analysis/NSString.m vendor/clang/dist/test/Analysis/NSWindow.m vendor/clang/dist/test/Analysis/NoReturn.m vendor/clang/dist/test/Analysis/ObjCProperties.m vendor/clang/dist/test/Analysis/ObjCRetSigs.m vendor/clang/dist/test/Analysis/PR2599.m vendor/clang/dist/test/Analysis/PR2978.m vendor/clang/dist/test/Analysis/PR3991.m vendor/clang/dist/test/Analysis/array-struct.c vendor/clang/dist/test/Analysis/casts.c vendor/clang/dist/test/Analysis/casts.m vendor/clang/dist/test/Analysis/cfref_PR2519.c vendor/clang/dist/test/Analysis/cfref_rdar6080742.c vendor/clang/dist/test/Analysis/complex.c vendor/clang/dist/test/Analysis/concrete-address.c vendor/clang/dist/test/Analysis/conditional-op-missing-lhs.c vendor/clang/dist/test/Analysis/dead-stores.c vendor/clang/dist/test/Analysis/dead-stores.cpp vendor/clang/dist/test/Analysis/dead-stores.m vendor/clang/dist/test/Analysis/delegates.m vendor/clang/dist/test/Analysis/elementtype.c vendor/clang/dist/test/Analysis/exercise-ps.c vendor/clang/dist/test/Analysis/fields.c vendor/clang/dist/test/Analysis/func.c vendor/clang/dist/test/Analysis/malloc.c vendor/clang/dist/test/Analysis/misc-ps-64.m vendor/clang/dist/test/Analysis/misc-ps-basic-store.m vendor/clang/dist/test/Analysis/misc-ps-eager-assume.m vendor/clang/dist/test/Analysis/misc-ps-ranges.m vendor/clang/dist/test/Analysis/misc-ps-region-store-i386.m vendor/clang/dist/test/Analysis/misc-ps-region-store-x86_64.m vendor/clang/dist/test/Analysis/misc-ps-region-store.m vendor/clang/dist/test/Analysis/misc-ps.m vendor/clang/dist/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret.m vendor/clang/dist/test/Analysis/no-exit-cfg.c vendor/clang/dist/test/Analysis/no-outofbounds.c vendor/clang/dist/test/Analysis/null-deref-ps-region.c vendor/clang/dist/test/Analysis/null-deref-ps.c vendor/clang/dist/test/Analysis/outofbound.c vendor/clang/dist/test/Analysis/override-werror.c vendor/clang/dist/test/Analysis/plist-output.m vendor/clang/dist/test/Analysis/pr4209.m vendor/clang/dist/test/Analysis/pr_2542_rdar_6793404.m vendor/clang/dist/test/Analysis/pr_4164.c vendor/clang/dist/test/Analysis/ptr-arith.c vendor/clang/dist/test/Analysis/rdar-6442306-1.m vendor/clang/dist/test/Analysis/rdar-6540084.m vendor/clang/dist/test/Analysis/rdar-6541136-region.c vendor/clang/dist/test/Analysis/rdar-6541136.c vendor/clang/dist/test/Analysis/rdar-6562655.m vendor/clang/dist/test/Analysis/rdar-6582778-basic-store.c vendor/clang/dist/test/Analysis/rdar-6600344-nil-receiver-undefined-struct-ret.m vendor/clang/dist/test/Analysis/rdar-7168531.m vendor/clang/dist/test/Analysis/refcnt_naming.m vendor/clang/dist/test/Analysis/region-1.m vendor/clang/dist/test/Analysis/retain-release-basic-store.m vendor/clang/dist/test/Analysis/retain-release-gc-only.m vendor/clang/dist/test/Analysis/retain-release-region-store.m vendor/clang/dist/test/Analysis/retain-release.m vendor/clang/dist/test/Analysis/security-syntax-checks.m vendor/clang/dist/test/Analysis/sizeofpointer.c vendor/clang/dist/test/Analysis/stack-addr-ps.c vendor/clang/dist/test/Analysis/uninit-msg-expr.m vendor/clang/dist/test/Analysis/uninit-ps-rdar6145427.m vendor/clang/dist/test/Analysis/uninit-vals-ps-region.c vendor/clang/dist/test/Analysis/uninit-vals-ps.c vendor/clang/dist/test/Analysis/uninit-vals.c vendor/clang/dist/test/Analysis/uninit-vals.m vendor/clang/dist/test/Analysis/unions-region.m vendor/clang/dist/test/Analysis/unused-ivars.m vendor/clang/dist/test/CMakeLists.txt vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p3-cxx0x.cpp vendor/clang/dist/test/CXX/special/class.free/p6.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp vendor/clang/dist/test/CodeCompletion/function-templates.cpp vendor/clang/dist/test/CodeCompletion/member-access.cpp vendor/clang/dist/test/CodeCompletion/objc-message.m vendor/clang/dist/test/CodeCompletion/templates.cpp vendor/clang/dist/test/CodeGen/2008-08-25-incompatible-cond-expr.m vendor/clang/dist/test/CodeGen/2009-01-21-invalid-debug-info.m vendor/clang/dist/test/CodeGen/arm_asm_clobber.c vendor/clang/dist/test/CodeGen/exprs.c vendor/clang/dist/test/CodeGen/function-decay.m vendor/clang/dist/test/CodeGen/object-size.c vendor/clang/dist/test/CodeGen/rdr-6732143-dangling-block-reference.m vendor/clang/dist/test/CodeGenCXX/class-layout.cpp vendor/clang/dist/test/CodeGenCXX/constructor-template.cpp vendor/clang/dist/test/CodeGenCXX/debug-info.cpp vendor/clang/dist/test/CodeGenCXX/eh.cpp vendor/clang/dist/test/CodeGenCXX/mangle-subst-std.cpp vendor/clang/dist/test/CodeGenCXX/mangle.cpp vendor/clang/dist/test/CodeGenCXX/member-function-pointers.cpp vendor/clang/dist/test/CodeGenCXX/predefined-expr.cpp vendor/clang/dist/test/CodeGenCXX/references.cpp vendor/clang/dist/test/CodeGenCXX/rtti.cpp vendor/clang/dist/test/CodeGenCXX/static-assert.cpp vendor/clang/dist/test/CodeGenCXX/static-init.cpp vendor/clang/dist/test/CodeGenCXX/virt-dtor-key.cpp vendor/clang/dist/test/CodeGenCXX/virt.cpp vendor/clang/dist/test/CodeGenObjC/2008-10-23-invalid-icmp.m vendor/clang/dist/test/CodeGenObjC/PR4541.m vendor/clang/dist/test/CodeGenObjC/PR4894-recursive-debug-crash.m vendor/clang/dist/test/CodeGenObjC/bitfield-1.m vendor/clang/dist/test/CodeGenObjC/bitfield-ivar-metadata.m vendor/clang/dist/test/CodeGenObjC/bitfield-ivar-offsets.m vendor/clang/dist/test/CodeGenObjC/blocks-1.m vendor/clang/dist/test/CodeGenObjC/blocks-2.m vendor/clang/dist/test/CodeGenObjC/blocks-3.m vendor/clang/dist/test/CodeGenObjC/blocks.m vendor/clang/dist/test/CodeGenObjC/category-super-class-meth.m vendor/clang/dist/test/CodeGenObjC/class-getter-dotsyntax.m vendor/clang/dist/test/CodeGenObjC/class-type.m vendor/clang/dist/test/CodeGenObjC/compatibility-alias.m vendor/clang/dist/test/CodeGenObjC/constant-strings.m vendor/clang/dist/test/CodeGenObjC/continuation-class.m vendor/clang/dist/test/CodeGenObjC/deadcode_strip_used_var.m vendor/clang/dist/test/CodeGenObjC/debug-info-linkagename.m vendor/clang/dist/test/CodeGenObjC/dot-syntax-1.m vendor/clang/dist/test/CodeGenObjC/dot-syntax.m vendor/clang/dist/test/CodeGenObjC/encode-test-1.m vendor/clang/dist/test/CodeGenObjC/encode-test-2.m vendor/clang/dist/test/CodeGenObjC/encode-test-3.m vendor/clang/dist/test/CodeGenObjC/encode-test-4.m vendor/clang/dist/test/CodeGenObjC/encode-test-5.m vendor/clang/dist/test/CodeGenObjC/encode-test.m vendor/clang/dist/test/CodeGenObjC/for-in.m vendor/clang/dist/test/CodeGenObjC/forward-class-impl-metadata.m vendor/clang/dist/test/CodeGenObjC/hidden-visibility.m vendor/clang/dist/test/CodeGenObjC/hidden.m vendor/clang/dist/test/CodeGenObjC/image-info.m vendor/clang/dist/test/CodeGenObjC/implicit-objc_msgSend.m vendor/clang/dist/test/CodeGenObjC/implicit-property.m vendor/clang/dist/test/CodeGenObjC/interface-layout-64.m vendor/clang/dist/test/CodeGenObjC/interface.m vendor/clang/dist/test/CodeGenObjC/ivar-layout-64-bitfields.m vendor/clang/dist/test/CodeGenObjC/ivar-layout-64.m vendor/clang/dist/test/CodeGenObjC/ivar-layout-no-optimize.m vendor/clang/dist/test/CodeGenObjC/ivars.m vendor/clang/dist/test/CodeGenObjC/link-errors.m vendor/clang/dist/test/CodeGenObjC/message-arrays.m vendor/clang/dist/test/CodeGenObjC/messages-2.m vendor/clang/dist/test/CodeGenObjC/messages.m vendor/clang/dist/test/CodeGenObjC/metadata-symbols-32.m vendor/clang/dist/test/CodeGenObjC/metadata-symbols-64.m vendor/clang/dist/test/CodeGenObjC/metadata_symbols.m vendor/clang/dist/test/CodeGenObjC/missing-atend-metadata.m vendor/clang/dist/test/CodeGenObjC/newproperty-nested-synthesis-1.m vendor/clang/dist/test/CodeGenObjC/no-category-class.m vendor/clang/dist/test/CodeGenObjC/non-lazy-classes.m vendor/clang/dist/test/CodeGenObjC/objc-align.m vendor/clang/dist/test/CodeGenObjC/objc-assign-ivar.m vendor/clang/dist/test/CodeGenObjC/objc-gc-aggr-assign.m vendor/clang/dist/test/CodeGenObjC/objc-read-weak-byref.m vendor/clang/dist/test/CodeGenObjC/objc2-assign-global.m vendor/clang/dist/test/CodeGenObjC/objc2-ivar-assign.m vendor/clang/dist/test/CodeGenObjC/objc2-new-gc-api-strongcast.m vendor/clang/dist/test/CodeGenObjC/objc2-no-strong-cast.m vendor/clang/dist/test/CodeGenObjC/objc2-no-write-barrier.m vendor/clang/dist/test/CodeGenObjC/objc2-property-encode.m vendor/clang/dist/test/CodeGenObjC/objc2-protocol-enc.m vendor/clang/dist/test/CodeGenObjC/objc2-retain-codegen.m vendor/clang/dist/test/CodeGenObjC/objc2-strong-cast-1.m vendor/clang/dist/test/CodeGenObjC/objc2-strong-cast.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-assign.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-compare.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-import-attribute.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-ivar-debug.m vendor/clang/dist/test/CodeGenObjC/objc2-weak-ivar.m vendor/clang/dist/test/CodeGenObjC/objc2-write-barrier-2.m vendor/clang/dist/test/CodeGenObjC/objc2-write-barrier-3.m vendor/clang/dist/test/CodeGenObjC/objc2-write-barrier-4.m vendor/clang/dist/test/CodeGenObjC/objc2-write-barrier-5.m vendor/clang/dist/test/CodeGenObjC/objc2-write-barrier.m vendor/clang/dist/test/CodeGenObjC/object-incr-decr-1.m vendor/clang/dist/test/CodeGenObjC/overloadable.m vendor/clang/dist/test/CodeGenObjC/predefined-expr.m vendor/clang/dist/test/CodeGenObjC/property-aggr-type.m vendor/clang/dist/test/CodeGenObjC/property-agrr-getter.m vendor/clang/dist/test/CodeGenObjC/property-complex.m vendor/clang/dist/test/CodeGenObjC/property-getter-dot-syntax.m vendor/clang/dist/test/CodeGenObjC/property-incr-decr-1.m vendor/clang/dist/test/CodeGenObjC/property-setter-attr.m vendor/clang/dist/test/CodeGenObjC/property.m vendor/clang/dist/test/CodeGenObjC/protocol-in-extended-class.m vendor/clang/dist/test/CodeGenObjC/protocol-property-synth.m vendor/clang/dist/test/CodeGenObjC/protocols-lazy.m vendor/clang/dist/test/CodeGenObjC/protocols.m vendor/clang/dist/test/CodeGenObjC/runtime-fns.m vendor/clang/dist/test/CodeGenObjC/sel-as-builtin-type.m vendor/clang/dist/test/CodeGenObjC/super-classmethod-category.m vendor/clang/dist/test/CodeGenObjC/super-dotsyntax-property.m vendor/clang/dist/test/CodeGenObjC/super-message-fragileabi.m vendor/clang/dist/test/CodeGenObjC/synchronized.m vendor/clang/dist/test/CodeGenObjC/synthesize_ivar-cont-class.m vendor/clang/dist/test/CodeGenObjC/synthesize_ivar.m vendor/clang/dist/test/CodeGenObjC/try.m vendor/clang/dist/test/CodeGenObjC/undefined-protocol.m vendor/clang/dist/test/CodeGenObjC/unname-bf-metadata.m vendor/clang/dist/test/CodeGenObjC/variadic-sends.m vendor/clang/dist/test/Coverage/ast-printing.m vendor/clang/dist/test/Coverage/codegen-gnu.m vendor/clang/dist/test/Coverage/codegen-next.m vendor/clang/dist/test/Coverage/parse-callbacks.m vendor/clang/dist/test/Driver/ccc-add-args.c vendor/clang/dist/test/Driver/clang-translation.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/Driver/cxx-pth.cpp vendor/clang/dist/test/Driver/dragonfly.c vendor/clang/dist/test/Driver/freebsd.c vendor/clang/dist/test/Driver/hello.c vendor/clang/dist/test/Driver/openbsd.c vendor/clang/dist/test/Driver/parsing.c vendor/clang/dist/test/Driver/pth.c vendor/clang/dist/test/Driver/qa_override.c vendor/clang/dist/test/FixIt/fixit-objc.m vendor/clang/dist/test/Index/TestClassDecl.m vendor/clang/dist/test/Index/TestClassForwardDecl.m vendor/clang/dist/test/Index/c-index-api-fn-scan.m vendor/clang/dist/test/Index/c-index-api-loadTU-test.m vendor/clang/dist/test/Index/c-index-getCursor-test.m vendor/clang/dist/test/Index/code-completion.cpp vendor/clang/dist/test/Index/complete-objc-message.m vendor/clang/dist/test/Index/objc-decls.m vendor/clang/dist/test/Index/objc-message.m vendor/clang/dist/test/Misc/message-length.c vendor/clang/dist/test/PCH/method_pool.m vendor/clang/dist/test/PCH/objc_exprs.m vendor/clang/dist/test/PCH/objc_import.m vendor/clang/dist/test/PCH/objc_methods.m vendor/clang/dist/test/PCH/objc_property.m vendor/clang/dist/test/Parser/check-objc2-syntax-1.m vendor/clang/dist/test/Parser/check-syntax-1.m vendor/clang/dist/test/Parser/cxx-decl.cpp vendor/clang/dist/test/Parser/cxx-friend.cpp vendor/clang/dist/test/Parser/cxx-using-declaration.cpp vendor/clang/dist/test/Parser/encode.m vendor/clang/dist/test/Parser/enhanced-proto-1.m vendor/clang/dist/test/Parser/expressions.m vendor/clang/dist/test/Parser/method-prototype-1.m vendor/clang/dist/test/Parser/objc-alias-printing.m vendor/clang/dist/test/Parser/objc-category-neg-1.m vendor/clang/dist/test/Parser/objc-forcollection-1.m vendor/clang/dist/test/Parser/objc-forcollection-neg-2.m vendor/clang/dist/test/Parser/objc-forcollection-neg.m vendor/clang/dist/test/Parser/objc-foreach-syntax.m vendor/clang/dist/test/Parser/objc-init.m vendor/clang/dist/test/Parser/objc-interfaces.m vendor/clang/dist/test/Parser/objc-messaging-1.m vendor/clang/dist/test/Parser/objc-messaging-neg-1.m vendor/clang/dist/test/Parser/objc-missing-impl.m vendor/clang/dist/test/Parser/objc-property-syntax.m vendor/clang/dist/test/Parser/objc-quirks.m vendor/clang/dist/test/Parser/objc-synthesized-recover.m vendor/clang/dist/test/Parser/objc-try-catch-1.m vendor/clang/dist/test/Parser/objc-type-printing.m vendor/clang/dist/test/Parser/prefix-attributes.m vendor/clang/dist/test/Parser/selector-1.m vendor/clang/dist/test/Preprocessor/dump_macros.c vendor/clang/dist/test/Preprocessor/header_lookup1.c vendor/clang/dist/test/Preprocessor/macro_fn_disable_expand.c vendor/clang/dist/test/Preprocessor/non_fragile_feature.m vendor/clang/dist/test/Preprocessor/non_fragile_feature1.m vendor/clang/dist/test/Preprocessor/objc-pp.m vendor/clang/dist/test/Rewriter/block-test.c vendor/clang/dist/test/Rewriter/crash.m vendor/clang/dist/test/Rewriter/finally.m vendor/clang/dist/test/Rewriter/id-test-3.m vendor/clang/dist/test/Rewriter/ivar-encoding-1.m vendor/clang/dist/test/Rewriter/ivar-encoding-2.m vendor/clang/dist/test/Rewriter/metadata-test-1.m vendor/clang/dist/test/Rewriter/metadata-test-2.m vendor/clang/dist/test/Rewriter/method-encoding-1.m vendor/clang/dist/test/Rewriter/objc-encoding-bug-1.m vendor/clang/dist/test/Rewriter/objc-ivar-receiver-1.m vendor/clang/dist/test/Rewriter/objc-string-concat-1.m vendor/clang/dist/test/Rewriter/objc-super-test.m vendor/clang/dist/test/Rewriter/objc-synchronized-1.m vendor/clang/dist/test/Rewriter/properties.m vendor/clang/dist/test/Rewriter/protocol-rewrite-1.m vendor/clang/dist/test/Rewriter/rewrite-api-bug.m vendor/clang/dist/test/Rewriter/rewrite-foreach-1.m vendor/clang/dist/test/Rewriter/rewrite-foreach-2.m vendor/clang/dist/test/Rewriter/rewrite-foreach-3.m vendor/clang/dist/test/Rewriter/rewrite-foreach-4.m vendor/clang/dist/test/Rewriter/rewrite-foreach-5.m vendor/clang/dist/test/Rewriter/rewrite-foreach-6.m vendor/clang/dist/test/Rewriter/rewrite-nest.m vendor/clang/dist/test/Rewriter/rewrite-protocol-type-1.m vendor/clang/dist/test/Rewriter/rewrite-try-catch.m vendor/clang/dist/test/Rewriter/static-type-protocol-1.m vendor/clang/dist/test/Rewriter/undecl-objc-h.m vendor/clang/dist/test/Rewriter/undeclared-method-1.m vendor/clang/dist/test/Rewriter/undef-field-reference-1.m vendor/clang/dist/test/Rewriter/va-method.m vendor/clang/dist/test/Sema/block-as-object.m vendor/clang/dist/test/Sema/builtin-prefetch.c vendor/clang/dist/test/Sema/compare.c vendor/clang/dist/test/Sema/exprs.c vendor/clang/dist/test/Sema/init.c vendor/clang/dist/test/Sema/ms-fuzzy-asm.c vendor/clang/dist/test/Sema/nested-redef.c vendor/clang/dist/test/Sema/rdar6248119.m vendor/clang/dist/test/Sema/return.c vendor/clang/dist/test/Sema/vector-init.c vendor/clang/dist/test/SemaCXX/attr-cxx0x.cpp vendor/clang/dist/test/SemaCXX/compare.cpp vendor/clang/dist/test/SemaCXX/convert-to-bool.cpp vendor/clang/dist/test/SemaCXX/decl-init-ref.cpp vendor/clang/dist/test/SemaCXX/default-assignment-operator.cpp vendor/clang/dist/test/SemaCXX/enum.cpp vendor/clang/dist/test/SemaCXX/exception-spec.cpp vendor/clang/dist/test/SemaCXX/friend.cpp vendor/clang/dist/test/SemaCXX/i-c-e-cxx.cpp vendor/clang/dist/test/SemaCXX/linkage-spec.cpp vendor/clang/dist/test/SemaCXX/member-expr.cpp vendor/clang/dist/test/SemaCXX/nested-name-spec.cpp vendor/clang/dist/test/SemaCXX/new-delete.cpp vendor/clang/dist/test/SemaCXX/offsetof.cpp vendor/clang/dist/test/SemaCXX/overload-call-copycon.cpp vendor/clang/dist/test/SemaCXX/overload-call.cpp vendor/clang/dist/test/SemaCXX/overloaded-operator.cpp vendor/clang/dist/test/SemaCXX/qualified-id-lookup.cpp vendor/clang/dist/test/SemaCXX/ref-init-ambiguous.cpp vendor/clang/dist/test/SemaCXX/references.cpp vendor/clang/dist/test/SemaCXX/rval-references.cpp vendor/clang/dist/test/SemaCXX/type-traits.cpp vendor/clang/dist/test/SemaCXX/using-decl-1.cpp vendor/clang/dist/test/SemaCXX/using-decl-templates.cpp vendor/clang/dist/test/SemaCXX/using-directive.cpp vendor/clang/dist/test/SemaCXX/vararg-non-pod.cpp vendor/clang/dist/test/SemaCXX/virtual-override.cpp vendor/clang/dist/test/SemaObjC/ContClassPropertyLookup.m vendor/clang/dist/test/SemaObjC/DoubleMethod.m vendor/clang/dist/test/SemaObjC/access-property-getter.m vendor/clang/dist/test/SemaObjC/alias-test-1.m vendor/clang/dist/test/SemaObjC/alias-test-2.m vendor/clang/dist/test/SemaObjC/argument-checking.m vendor/clang/dist/test/SemaObjC/at-defs.m vendor/clang/dist/test/SemaObjC/atomoic-property-synnthesis-rules.m vendor/clang/dist/test/SemaObjC/attr-cleanup.m vendor/clang/dist/test/SemaObjC/attr-deprecated.m vendor/clang/dist/test/SemaObjC/attr-malloc.m vendor/clang/dist/test/SemaObjC/attr-objc-exception.m vendor/clang/dist/test/SemaObjC/attr-objc-gc.m vendor/clang/dist/test/SemaObjC/bad-receiver-1.m vendor/clang/dist/test/SemaObjC/block-attr.m vendor/clang/dist/test/SemaObjC/block-explicit-return-type.m vendor/clang/dist/test/SemaObjC/block-ivar.m vendor/clang/dist/test/SemaObjC/blocks.m vendor/clang/dist/test/SemaObjC/call-super-2.m vendor/clang/dist/test/SemaObjC/catch-stmt.m vendor/clang/dist/test/SemaObjC/category-1.m vendor/clang/dist/test/SemaObjC/category-method-lookup-2.m vendor/clang/dist/test/SemaObjC/category-method-lookup.m vendor/clang/dist/test/SemaObjC/check-dup-decl-methods-1.m vendor/clang/dist/test/SemaObjC/check-dup-objc-decls-1.m vendor/clang/dist/test/SemaObjC/class-bitfield.m vendor/clang/dist/test/SemaObjC/class-conforming-protocol-1.m vendor/clang/dist/test/SemaObjC/class-conforming-protocol-2.m vendor/clang/dist/test/SemaObjC/class-def-test-1.m vendor/clang/dist/test/SemaObjC/class-extension-dup-methods.m vendor/clang/dist/test/SemaObjC/class-getter-using-dotsyntax.m vendor/clang/dist/test/SemaObjC/class-impl-1.m vendor/clang/dist/test/SemaObjC/class-method-lookup.m vendor/clang/dist/test/SemaObjC/class-method-self.m vendor/clang/dist/test/SemaObjC/class-property-access.m vendor/clang/dist/test/SemaObjC/class-proto-1.m vendor/clang/dist/test/SemaObjC/class-protocol.m vendor/clang/dist/test/SemaObjC/cocoa.m vendor/clang/dist/test/SemaObjC/compare-qualified-id.m vendor/clang/dist/test/SemaObjC/compatible-protocol-qualified-types.m vendor/clang/dist/test/SemaObjC/comptypes-1.m vendor/clang/dist/test/SemaObjC/comptypes-2.m vendor/clang/dist/test/SemaObjC/comptypes-3.m vendor/clang/dist/test/SemaObjC/comptypes-4.m vendor/clang/dist/test/SemaObjC/comptypes-5.m vendor/clang/dist/test/SemaObjC/comptypes-6.m vendor/clang/dist/test/SemaObjC/comptypes-7.m vendor/clang/dist/test/SemaObjC/comptypes-8.m vendor/clang/dist/test/SemaObjC/comptypes-9.m vendor/clang/dist/test/SemaObjC/comptypes-a.m vendor/clang/dist/test/SemaObjC/comptypes-legal.m vendor/clang/dist/test/SemaObjC/conditional-expr-2.m vendor/clang/dist/test/SemaObjC/conditional-expr-3.m vendor/clang/dist/test/SemaObjC/conditional-expr-4.m vendor/clang/dist/test/SemaObjC/conditional-expr-5.m vendor/clang/dist/test/SemaObjC/conditional-expr-6.m vendor/clang/dist/test/SemaObjC/conditional-expr.m vendor/clang/dist/test/SemaObjC/conflicting-ivar-test-1.m vendor/clang/dist/test/SemaObjC/continuation-class-err.m vendor/clang/dist/test/SemaObjC/crash-label.m vendor/clang/dist/test/SemaObjC/deref-interface.m vendor/clang/dist/test/SemaObjC/duplicate-ivar-check.m vendor/clang/dist/test/SemaObjC/enhanced-proto-2.m vendor/clang/dist/test/SemaObjC/error-property-gc-attr.m vendor/clang/dist/test/SemaObjC/exprs.m vendor/clang/dist/test/SemaObjC/foreach.m vendor/clang/dist/test/SemaObjC/format-arg-attribute.m vendor/clang/dist/test/SemaObjC/format-strings-objc.m vendor/clang/dist/test/SemaObjC/forward-class-1.m vendor/clang/dist/test/SemaObjC/forward-class-receiver.m vendor/clang/dist/test/SemaObjC/gcc-cast-ext.m vendor/clang/dist/test/SemaObjC/id-isa-ref.m vendor/clang/dist/test/SemaObjC/id.m vendor/clang/dist/test/SemaObjC/id_builtin.m vendor/clang/dist/test/SemaObjC/idiomatic-parentheses.m vendor/clang/dist/test/SemaObjC/ignore-weakimport-method.m vendor/clang/dist/test/SemaObjC/incompatible-protocol-qualified-types.m vendor/clang/dist/test/SemaObjC/inst-method-lookup-in-root.m vendor/clang/dist/test/SemaObjC/interface-1.m vendor/clang/dist/test/SemaObjC/interface-layout-2.m vendor/clang/dist/test/SemaObjC/interface-layout.m vendor/clang/dist/test/SemaObjC/interface-scope-2.m vendor/clang/dist/test/SemaObjC/interface-scope.m vendor/clang/dist/test/SemaObjC/interface-tu-variable.m vendor/clang/dist/test/SemaObjC/invalid-code.m vendor/clang/dist/test/SemaObjC/invalid-objc-decls-1.m vendor/clang/dist/test/SemaObjC/invalid-receiver.m vendor/clang/dist/test/SemaObjC/invalid-typename.m vendor/clang/dist/test/SemaObjC/ivar-access-package.m vendor/clang/dist/test/SemaObjC/ivar-access-tests.m vendor/clang/dist/test/SemaObjC/ivar-lookup.m vendor/clang/dist/test/SemaObjC/ivar-ref-misuse.m vendor/clang/dist/test/SemaObjC/ivar-sem-check-1.m vendor/clang/dist/test/SemaObjC/ivar-sem-check-2.m vendor/clang/dist/test/SemaObjC/legacy-implementation-1.m vendor/clang/dist/test/SemaObjC/message.m vendor/clang/dist/test/SemaObjC/method-arg-decay.m vendor/clang/dist/test/SemaObjC/method-attributes.m vendor/clang/dist/test/SemaObjC/method-bad-param.m vendor/clang/dist/test/SemaObjC/method-conflict.m vendor/clang/dist/test/SemaObjC/method-def-1.m vendor/clang/dist/test/SemaObjC/method-def-2.m vendor/clang/dist/test/SemaObjC/method-encoding-2.m vendor/clang/dist/test/SemaObjC/method-lookup-2.m vendor/clang/dist/test/SemaObjC/method-lookup-3.m vendor/clang/dist/test/SemaObjC/method-lookup-4.m vendor/clang/dist/test/SemaObjC/method-lookup.m vendor/clang/dist/test/SemaObjC/method-no-context.m vendor/clang/dist/test/SemaObjC/method-not-defined.m vendor/clang/dist/test/SemaObjC/method-sentinel-attr.m vendor/clang/dist/test/SemaObjC/method-typecheck-1.m vendor/clang/dist/test/SemaObjC/method-typecheck-2.m vendor/clang/dist/test/SemaObjC/method-undef-category-warn-1.m vendor/clang/dist/test/SemaObjC/method-undef-extension-warn-1.m vendor/clang/dist/test/SemaObjC/method-undefined-warn-1.m vendor/clang/dist/test/SemaObjC/missing-method-context.m vendor/clang/dist/test/SemaObjC/newproperty-class-method-1.m vendor/clang/dist/test/SemaObjC/no-gc-weak-test.m vendor/clang/dist/test/SemaObjC/no-warn-qual-mismatch.m vendor/clang/dist/test/SemaObjC/no-warn-synth-protocol-meth.m vendor/clang/dist/test/SemaObjC/no-warn-unimpl-method.m vendor/clang/dist/test/SemaObjC/nonnull.m vendor/clang/dist/test/SemaObjC/nsobject-attribute-1.m vendor/clang/dist/test/SemaObjC/nsobject-attribute.m vendor/clang/dist/test/SemaObjC/objc-string-constant.m vendor/clang/dist/test/SemaObjC/objc2-merge-gc-attribue-decl.m vendor/clang/dist/test/SemaObjC/objc2-warn-weak-decl.m vendor/clang/dist/test/SemaObjC/property-10.m vendor/clang/dist/test/SemaObjC/property-11.m vendor/clang/dist/test/SemaObjC/property-12.m vendor/clang/dist/test/SemaObjC/property-13.m vendor/clang/dist/test/SemaObjC/property-2.m vendor/clang/dist/test/SemaObjC/property-3.m vendor/clang/dist/test/SemaObjC/property-4.m vendor/clang/dist/test/SemaObjC/property-5.m vendor/clang/dist/test/SemaObjC/property-6.m vendor/clang/dist/test/SemaObjC/property-7.m vendor/clang/dist/test/SemaObjC/property-8.m vendor/clang/dist/test/SemaObjC/property-9-impl-method.m vendor/clang/dist/test/SemaObjC/property-9.m vendor/clang/dist/test/SemaObjC/property-category-1.m vendor/clang/dist/test/SemaObjC/property-category-2.m vendor/clang/dist/test/SemaObjC/property-category-3.m vendor/clang/dist/test/SemaObjC/property-category-4.m vendor/clang/dist/test/SemaObjC/property-error-readonly-assign.m vendor/clang/dist/test/SemaObjC/property-expression-error.m vendor/clang/dist/test/SemaObjC/property-impl-misuse.m vendor/clang/dist/test/SemaObjC/property-inherited.m vendor/clang/dist/test/SemaObjC/property-ivar-mismatch.m vendor/clang/dist/test/SemaObjC/property-method-lookup-impl.m vendor/clang/dist/test/SemaObjC/property-missing.m vendor/clang/dist/test/SemaObjC/property-nonfragile-abi.m vendor/clang/dist/test/SemaObjC/property-noprotocol-warning.m vendor/clang/dist/test/SemaObjC/property-redundant-decl-accessor.m vendor/clang/dist/test/SemaObjC/property-typecheck-1.m vendor/clang/dist/test/SemaObjC/property-user-setter.m vendor/clang/dist/test/SemaObjC/property-weak.m vendor/clang/dist/test/SemaObjC/property.m vendor/clang/dist/test/SemaObjC/props-on-prots.m vendor/clang/dist/test/SemaObjC/protocol-archane.m vendor/clang/dist/test/SemaObjC/protocol-attribute.m vendor/clang/dist/test/SemaObjC/protocol-expr-1.m vendor/clang/dist/test/SemaObjC/protocol-expr-neg-1.m vendor/clang/dist/test/SemaObjC/protocol-id-test-1.m vendor/clang/dist/test/SemaObjC/protocol-id-test-2.m vendor/clang/dist/test/SemaObjC/protocol-id-test-3.m vendor/clang/dist/test/SemaObjC/protocol-implementation-inherited.m vendor/clang/dist/test/SemaObjC/protocol-lookup-2.m vendor/clang/dist/test/SemaObjC/protocol-lookup.m vendor/clang/dist/test/SemaObjC/protocol-qualified-class-unsupported.m vendor/clang/dist/test/SemaObjC/protocol-typecheck.m vendor/clang/dist/test/SemaObjC/protocols.m vendor/clang/dist/test/SemaObjC/rdr-6211479-array-property.m vendor/clang/dist/test/SemaObjC/return.m vendor/clang/dist/test/SemaObjC/scope-check.m vendor/clang/dist/test/SemaObjC/selector-1.m vendor/clang/dist/test/SemaObjC/selector-error.m vendor/clang/dist/test/SemaObjC/selector-overload.m vendor/clang/dist/test/SemaObjC/sizeof-interface.m vendor/clang/dist/test/SemaObjC/static-ivar-ref-1.m vendor/clang/dist/test/SemaObjC/stmts.m vendor/clang/dist/test/SemaObjC/string.m vendor/clang/dist/test/SemaObjC/super-cat-prot.m vendor/clang/dist/test/SemaObjC/super-property-message-expr.m vendor/clang/dist/test/SemaObjC/super-property-notation.m vendor/clang/dist/test/SemaObjC/super.m vendor/clang/dist/test/SemaObjC/synchronized.m vendor/clang/dist/test/SemaObjC/synthesize-setter-contclass.m vendor/clang/dist/test/SemaObjC/synthesized-ivar.m vendor/clang/dist/test/SemaObjC/try-catch.m vendor/clang/dist/test/SemaObjC/typedef-class.m vendor/clang/dist/test/SemaObjC/ucn-objc-string.m vendor/clang/dist/test/SemaObjC/undeclared-selector.m vendor/clang/dist/test/SemaObjC/undef-class-messagin-error.m vendor/clang/dist/test/SemaObjC/undef-protocol-methods-1.m vendor/clang/dist/test/SemaObjC/undef-superclass-1.m vendor/clang/dist/test/SemaObjC/undefined-protocol-type-1.m vendor/clang/dist/test/SemaObjC/unused.m vendor/clang/dist/test/SemaObjC/va-method-1.m vendor/clang/dist/test/SemaObjC/warn-assign-property-nscopying.m vendor/clang/dist/test/SemaObjC/warn-selector-selection.m vendor/clang/dist/test/SemaObjC/warn-superclass-method-mismatch.m vendor/clang/dist/test/SemaObjC/warn-weak-field.m vendor/clang/dist/test/SemaObjC/weak-attr-ivar.m vendor/clang/dist/test/SemaObjC/writable-property-in-superclass.m vendor/clang/dist/test/SemaObjCXX/blocks.mm vendor/clang/dist/test/SemaObjCXX/linkage-spec.mm vendor/clang/dist/test/SemaObjCXX/objc-decls-inside-namespace.mm vendor/clang/dist/test/SemaObjCXX/overload.mm vendor/clang/dist/test/SemaObjCXX/protocol-lookup.mm vendor/clang/dist/test/SemaObjCXX/references.mm vendor/clang/dist/test/SemaObjCXX/reserved-keyword-selectors.mm vendor/clang/dist/test/SemaObjCXX/vararg-non-pod.mm vendor/clang/dist/test/SemaObjCXX/void_to_obj.mm vendor/clang/dist/test/SemaTemplate/class-template-id.cpp vendor/clang/dist/test/SemaTemplate/constructor-template.cpp vendor/clang/dist/test/SemaTemplate/friend-template.cpp vendor/clang/dist/test/SemaTemplate/instantiate-expr-1.cpp vendor/clang/dist/test/SemaTemplate/instantiate-expr-4.cpp vendor/clang/dist/test/SemaTemplate/instantiate-function-1.mm vendor/clang/dist/test/SemaTemplate/instantiate-method.cpp vendor/clang/dist/test/SemaTemplate/instantiate-objc-1.mm vendor/clang/dist/test/SemaTemplate/instantiate-static-var.cpp vendor/clang/dist/test/SemaTemplate/instantiate-using-decl.cpp vendor/clang/dist/test/SemaTemplate/qualified-id.cpp vendor/clang/dist/test/lit.cfg vendor/clang/dist/tools/CIndex/CIndex.cpp vendor/clang/dist/tools/CIndex/CIndex.exports vendor/clang/dist/tools/CIndex/CMakeLists.txt vendor/clang/dist/tools/CIndex/Makefile vendor/clang/dist/tools/CMakeLists.txt vendor/clang/dist/tools/Makefile vendor/clang/dist/tools/c-index-test/CMakeLists.txt vendor/clang/dist/tools/c-index-test/Makefile vendor/clang/dist/tools/c-index-test/c-index-test.c vendor/clang/dist/tools/driver/CMakeLists.txt vendor/clang/dist/tools/driver/Makefile vendor/clang/dist/tools/driver/cc1_main.cpp vendor/clang/dist/tools/driver/driver.cpp vendor/clang/dist/tools/index-test/CMakeLists.txt vendor/clang/dist/tools/index-test/Makefile vendor/clang/dist/tools/index-test/index-test.cpp vendor/clang/dist/tools/scan-build/ccc-analyzer vendor/clang/dist/tools/scan-build/scan-build vendor/clang/dist/utils/C++Tests/LLVM-Code-Syntax/lit.local.cfg vendor/clang/dist/utils/C++Tests/LLVM-Syntax/lit.local.cfg vendor/clang/dist/utils/clang-completion-mode.el vendor/clang/dist/www/analyzer/installation.html vendor/clang/dist/www/analyzer/latest_checker.html.incl vendor/clang/dist/www/get_started.html vendor/clang/dist/www/hacking.html Modified: vendor/clang/dist/NOTES.txt ============================================================================== --- vendor/clang/dist/NOTES.txt Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/NOTES.txt Tue Dec 15 18:49:47 2009 (r200583) @@ -17,7 +17,7 @@ Creating and using a PTH file for perfor build). $ clang -ccc-pch-is-pth -x objective-c-header INPUTS/Cocoa_h.m -o /tmp/tokencache -$ clang-cc -token-cache /tmp/tokencache INPUTS/Cocoa_h.m +$ clang -cc1 -token-cache /tmp/tokencache INPUTS/Cocoa_h.m //===---------------------------------------------------------------------===// Modified: vendor/clang/dist/TODO.txt ============================================================================== --- vendor/clang/dist/TODO.txt Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/TODO.txt Tue Dec 15 18:49:47 2009 (r200583) @@ -65,7 +65,6 @@ More ideas for code modification hints: - If no member of a given name is found in a class/struct, search through the names of entities that do exist in the class and suggest the closest candidate. e.g., if I write "DS.setTypeSpecType", it would suggest "DS.SetTypeSpecType" (edit distance = 1). - If a class member is defined out-of-line but isn't in the class declaration (and there are no close matches!), provide the option to add an in-class declaration. - Fix-it hints for the inclusion of headers when needed for particular features (e.g., for typeid) - - Change "foo.bar" to "foo->bar" when "foo" is a pointer. //===---------------------------------------------------------------------===// Modified: vendor/clang/dist/clang.xcodeproj/project.pbxproj ============================================================================== --- vendor/clang/dist/clang.xcodeproj/project.pbxproj Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/clang.xcodeproj/project.pbxproj Tue Dec 15 18:49:47 2009 (r200583) @@ -37,13 +37,14 @@ 1A6B6CD410693FC900BB4A8F /* CodeCompleteConsumer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6B6CD110693FC900BB4A8F /* CodeCompleteConsumer.cpp */; }; 1A6B6CD510693FC900BB4A8F /* SemaCodeComplete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6B6CD210693FC900BB4A8F /* SemaCodeComplete.cpp */; }; 1A6B6E9A1069833600BB4A8F /* CGExprCXX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6B6E991069833600BB4A8F /* CGExprCXX.cpp */; }; - 1A6C01F7108128710072DEE4 /* CGRtti.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6C01F6108128710072DEE4 /* CGRtti.cpp */; }; + 1A6C01F7108128710072DEE4 /* CGRTTI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6C01F6108128710072DEE4 /* CGRTTI.cpp */; }; 1A6FE7090FD6F85800E00CA9 /* CGTemporaries.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6FE7080FD6F85800E00CA9 /* CGTemporaries.cpp */; }; 1A701B640F7C8FE400FEC4D1 /* SemaAccess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A701B630F7C8FE400FEC4D1 /* SemaAccess.cpp */; }; 1A7342480C7B57D500122F56 /* CGObjC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7342470C7B57D500122F56 /* CGObjC.cpp */; }; 1A81AA19108144F40094E50B /* CGVtable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A81AA18108144F40094E50B /* CGVtable.cpp */; }; 1A869A700BA2164C008DA07A /* LiteralSupport.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A869A6E0BA2164C008DA07A /* LiteralSupport.h */; }; 1A869AA80BA21ABA008DA07A /* LiteralSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A869AA70BA21ABA008DA07A /* LiteralSupport.cpp */; }; + 1A986AB710D0746D00A8EA9E /* CGDeclCXX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A986AB610D0746D00A8EA9E /* CGDeclCXX.cpp */; }; 1AA1D91810125DE30078DEBC /* RecordLayoutBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA1D91610125DE30078DEBC /* RecordLayoutBuilder.cpp */; }; 1ABC36940C7A4BDC006DB0AB /* CGBuiltin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ABC36930C7A4BDC006DB0AB /* CGBuiltin.cpp */; }; 1ADD795410A90C6100741BBA /* TypePrinter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADD795110A90C6100741BBA /* TypePrinter.cpp */; }; @@ -53,7 +54,6 @@ 1AE4EE3E103B89ED00888A23 /* StmtProfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE4EE3D103B89ED00888A23 /* StmtProfile.cpp */; }; 1AE4EE40103B8A0A00888A23 /* TargetABIInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE4EE3F103B8A0A00888A23 /* TargetABIInfo.cpp */; }; 1AF1B50F109A4FB800AFAFAC /* CGException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */; }; - 1AFEF4070F8A6B2300476F2B /* clang-cc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFEF4050F8A6B2300476F2B /* clang-cc.cpp */; }; 1AFF8AE31012BFC900D248DA /* CGRecordLayoutBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFF8AE11012BFC900D248DA /* CGRecordLayoutBuilder.cpp */; }; 3507E4C20E27FE2D00FB7B57 /* CheckObjCInstMethSignature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3507E4C10E27FE2D00FB7B57 /* CheckObjCInstMethSignature.cpp */; }; 352246E70F5C6BE000D0D279 /* HTMLDiagnostics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 352246E10F5C6BE000D0D279 /* HTMLDiagnostics.cpp */; }; @@ -279,6 +279,7 @@ DEF7D9F70C9C8B1A0001F598 /* Rewriter.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DEF7D9F60C9C8B1A0001F598 /* Rewriter.h */; }; DEF7D9F90C9C8B1D0001F598 /* Rewriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DEF7D9F80C9C8B1D0001F598 /* Rewriter.cpp */; }; DEFFECA70DB1546600B4E7C3 /* DeltaTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DEFFECA60DB1546600B4E7C3 /* DeltaTree.cpp */; }; + E16B523510D30B2400430AC9 /* cc1_main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E16B523410D30B2400430AC9 /* cc1_main.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -379,7 +380,7 @@ 1A6B6CD210693FC900BB4A8F /* SemaCodeComplete.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = SemaCodeComplete.cpp; path = lib/Sema/SemaCodeComplete.cpp; sourceTree = ""; tabWidth = 2; }; 1A6B6CD310693FC900BB4A8F /* SemaTemplate.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = SemaTemplate.h; path = lib/Sema/SemaTemplate.h; sourceTree = ""; tabWidth = 2; }; 1A6B6E991069833600BB4A8F /* CGExprCXX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGExprCXX.cpp; path = lib/CodeGen/CGExprCXX.cpp; sourceTree = ""; tabWidth = 2; }; - 1A6C01F6108128710072DEE4 /* CGRtti.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGRtti.cpp; path = lib/CodeGen/CGRtti.cpp; sourceTree = ""; tabWidth = 2; }; + 1A6C01F6108128710072DEE4 /* CGRTTI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGRTTI.cpp; path = lib/CodeGen/CGRTTI.cpp; sourceTree = ""; tabWidth = 2; }; 1A6FE7080FD6F85800E00CA9 /* CGTemporaries.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGTemporaries.cpp; path = lib/CodeGen/CGTemporaries.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 = ""; }; @@ -396,6 +397,7 @@ 1A81AA5D108278A20094E50B /* CGVtable.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = CGVtable.h; path = lib/CodeGen/CGVtable.h; sourceTree = ""; tabWidth = 2; }; 1A869A6E0BA2164C008DA07A /* LiteralSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiteralSupport.h; sourceTree = ""; }; 1A869AA70BA21ABA008DA07A /* LiteralSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LiteralSupport.cpp; sourceTree = ""; }; + 1A986AB610D0746D00A8EA9E /* CGDeclCXX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGDeclCXX.cpp; path = lib/CodeGen/CGDeclCXX.cpp; sourceTree = ""; tabWidth = 2; }; 1AA1D91610125DE30078DEBC /* RecordLayoutBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = RecordLayoutBuilder.cpp; path = lib/AST/RecordLayoutBuilder.cpp; sourceTree = ""; tabWidth = 2; }; 1AA1D91710125DE30078DEBC /* RecordLayoutBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = RecordLayoutBuilder.h; path = lib/AST/RecordLayoutBuilder.h; sourceTree = ""; tabWidth = 2; }; 1AB290021045858B00FE33D8 /* PartialDiagnostic.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = PartialDiagnostic.h; sourceTree = ""; tabWidth = 2; }; @@ -408,7 +410,6 @@ 1AE4EE3D103B89ED00888A23 /* StmtProfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = StmtProfile.cpp; path = lib/AST/StmtProfile.cpp; sourceTree = ""; tabWidth = 2; }; 1AE4EE3F103B8A0A00888A23 /* TargetABIInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = TargetABIInfo.cpp; path = lib/CodeGen/TargetABIInfo.cpp; sourceTree = ""; tabWidth = 2; }; 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGException.cpp; path = lib/CodeGen/CGException.cpp; sourceTree = ""; tabWidth = 2; }; - 1AFEF4050F8A6B2300476F2B /* clang-cc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = "clang-cc.cpp"; path = "tools/clang-cc/clang-cc.cpp"; sourceTree = ""; tabWidth = 2; }; 1AFF8AE11012BFC900D248DA /* CGRecordLayoutBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGRecordLayoutBuilder.cpp; path = lib/CodeGen/CGRecordLayoutBuilder.cpp; sourceTree = ""; tabWidth = 2; }; 1AFF8AE21012BFC900D248DA /* CGRecordLayoutBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = CGRecordLayoutBuilder.h; path = lib/CodeGen/CGRecordLayoutBuilder.h; sourceTree = ""; tabWidth = 2; }; 3507E4C10E27FE2D00FB7B57 /* CheckObjCInstMethSignature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CheckObjCInstMethSignature.cpp; path = lib/Analysis/CheckObjCInstMethSignature.cpp; sourceTree = ""; }; @@ -807,6 +808,7 @@ DEF7D9F80C9C8B1D0001F598 /* Rewriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Rewriter.cpp; path = lib/Rewrite/Rewriter.cpp; sourceTree = ""; }; DEFFECA30DB093D100B4E7C3 /* DeltaTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeltaTree.h; path = clang/Rewrite/DeltaTree.h; sourceTree = ""; }; DEFFECA60DB1546600B4E7C3 /* DeltaTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DeltaTree.cpp; path = lib/Rewrite/DeltaTree.cpp; sourceTree = ""; }; + E16B523410D30B2400430AC9 /* cc1_main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cc1_main.cpp; path = tools/driver/cc1_main.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1268,13 +1270,14 @@ 1A4C41BE105B4C0B0047B5E7 /* CGClass.cpp */, 1A5D5E570E5E81010023C059 /* CGCXX.cpp */, 1A649E1E0F9599DA005B965E /* CGCXX.h */, - 1A6B6E991069833600BB4A8F /* CGExprCXX.cpp */, 35A3E7000DD3874400757F74 /* CGDebugInfo.cpp */, 35A3E7010DD3874400757F74 /* CGDebugInfo.h */, DE4264FB0C113592005A861D /* CGDecl.cpp */, + 1A986AB610D0746D00A8EA9E /* CGDeclCXX.cpp */, 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */, DE4772FB0C10EAEC002239E8 /* CGExpr.cpp */, DEF2EFF20C6CDD74000C4259 /* CGExprAgg.cpp */, + 1A6B6E991069833600BB4A8F /* CGExprCXX.cpp */, DE224FF70C7AA98800D370A5 /* CGExprComplex.cpp */, 1A376A2C0D4AED9B002A1C52 /* CGExprConstant.cpp */, DE22526F0C7E82D000D370A5 /* CGExprScalar.cpp */, @@ -1284,7 +1287,7 @@ 3552E7580E520DD7003A8CA5 /* CGObjCMac.cpp */, 1AFF8AE11012BFC900D248DA /* CGRecordLayoutBuilder.cpp */, 1AFF8AE21012BFC900D248DA /* CGRecordLayoutBuilder.h */, - 1A6C01F6108128710072DEE4 /* CGRtti.cpp */, + 1A6C01F6108128710072DEE4 /* CGRTTI.cpp */, DE4772F90C10EAE5002239E8 /* CGStmt.cpp */, 1A6FE7080FD6F85800E00CA9 /* CGTemporaries.cpp */, 35475B230E7997680000BFE4 /* CGValue.h */, @@ -1539,23 +1542,15 @@ 90F9EFA8104ABDC400D09A15 /* c-index-test */, 9012911E104812DA0083456D /* CIndex */, 90FD6DB4103D9763005F5B73 /* index-test */, - DEDFE6200F7B3AE90035BD10 /* clang-cc */, DEDFE6210F7B3AF10035BD10 /* clang */, ); name = Tools; sourceTree = ""; }; - DEDFE6200F7B3AE90035BD10 /* clang-cc */ = { - isa = PBXGroup; - children = ( - 1AFEF4050F8A6B2300476F2B /* clang-cc.cpp */, - ); - name = "clang-cc"; - sourceTree = ""; - }; DEDFE6210F7B3AF10035BD10 /* clang */ = { isa = PBXGroup; children = ( + E16B523410D30B2400430AC9 /* cc1_main.cpp */, DEDFE6450F7B3B4E0035BD10 /* driver.cpp */, ); name = clang; @@ -1872,7 +1867,6 @@ 1A701B640F7C8FE400FEC4D1 /* SemaAccess.cpp in Sources */, 906BF4B00F83BA2E001071FA /* ConvertUTF.c in Sources */, DEDFF8880F848CF80035BD10 /* TemplateName.cpp in Sources */, - 1AFEF4070F8A6B2300476F2B /* clang-cc.cpp in Sources */, DEF165710F8FB34D0098507F /* PCHWriter.cpp in Sources */, DEF165750F8FB3510098507F /* PCHReader.cpp in Sources */, DEF168400F9548DC0098507F /* FixItRewriter.cpp in Sources */, @@ -1927,12 +1921,14 @@ 1A6B6CD510693FC900BB4A8F /* SemaCodeComplete.cpp in Sources */, 1A6B6E9A1069833600BB4A8F /* CGExprCXX.cpp in Sources */, 1A535ED9107BC45E000C3AE7 /* CXXInheritance.cpp in Sources */, - 1A6C01F7108128710072DEE4 /* CGRtti.cpp in Sources */, + 1A6C01F7108128710072DEE4 /* CGRTTI.cpp in Sources */, 1A81AA19108144F40094E50B /* CGVtable.cpp in Sources */, 1AF1B50F109A4FB800AFAFAC /* CGException.cpp in Sources */, 1ADD795410A90C6100741BBA /* TypePrinter.cpp in Sources */, 1ADD795510A90C6100741BBA /* TypeLoc.cpp in Sources */, 1ADD795610A90C6100741BBA /* TemplateBase.cpp in Sources */, + 1A986AB710D0746D00A8EA9E /* CGDeclCXX.cpp in Sources */, + E16B523510D30B2400430AC9 /* cc1_main.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Modified: vendor/clang/dist/docs/BlockImplementation.txt ============================================================================== --- vendor/clang/dist/docs/BlockImplementation.txt Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/BlockImplementation.txt Tue Dec 15 18:49:47 2009 (r200583) @@ -292,7 +292,7 @@ would be rewritten to be: int flags; //refcount; int size; int captured_i; - } i = { NULL, &i, 0, sizeof(struct _block_byref_i), 11; + } i = { NULL, &i, 0, sizeof(struct _block_byref_i), 11 }; i.forwarding->captured_i = 11; Modified: vendor/clang/dist/docs/LanguageExtensions.html ============================================================================== --- vendor/clang/dist/docs/LanguageExtensions.html Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/LanguageExtensions.html Tue Dec 15 18:49:47 2009 (r200583) @@ -23,6 +23,11 @@ td {
          39. Include File Checking Macros
          40. Builtin Macros
          41. Vectors and Extended Vectors
          42. +
          43. Checks for Standard Language Features
          44. +
          45. Blocks
          46. Function Overloading in C
          47. Builtin Functions @@ -194,6 +199,23 @@ href="#__builtin_shufflevector">__builti

            Query for this feature with __has_feature(attribute_ext_vector_type).

            +

            Checks for Standard Language Features

            + + +

            The __has_feature macro can be used to query if certain standard language features are +enabled. Those features are listed here.

            + +

            C++ exceptions

            + +

            Use __has_feature(cxx_exceptions) to determine if C++ exceptions have been enabled. For +example, compiling code with -fexceptions enables C++ exceptions.

            + +

            C++ RTTI

            + +

            Use __has_feature(cxx_rtti) to determine if C++ RTTI has been enabled. For example, +compiling code with -fno-rtti disables the use of RTTI.

            + +

            Blocks

            Modified: vendor/clang/dist/docs/PCHInternals.html ============================================================================== --- vendor/clang/dist/docs/PCHInternals.html Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/PCHInternals.html Tue Dec 15 18:49:47 2009 (r200583) @@ -26,7 +26,7 @@

            Table of Contents

            • Using Precompiled Headers with - clang-cc
            • + clang
            • Design Philosophy
            • Precompiled Header Contents
                @@ -44,15 +44,15 @@ Points
              -

              Using Precompiled Headers with clang-cc

              +

              Using Precompiled Headers with clang

              -

              The low-level Clang compiler, clang-cc, supports two command -line options for generating and using PCH files.

              +

              The Clang compiler frontend, clang -cc1, supports two command line +options for generating and using PCH files.

              -

              To generate PCH files using clang-cc, use the option +

              To generate PCH files using clang -cc1, use the option -emit-pch: -

               $ clang-cc test.h -emit-pch -o test.h.pch 
              +
               $ clang -cc1 test.h -emit-pch -o test.h.pch 

              This option is transparently used by clang when generating PCH files. The resulting PCH file contains the serialized form of the @@ -61,7 +61,7 @@ semantic analysis. The PCH file can then with the -include-pch option:

              -  $ clang-cc -include-pch test.h.pch test.c -o test.s
              +  $ clang -cc1 -include-pch test.h.pch test.c -o test.s
               

              Design Philosophy

              Modified: vendor/clang/dist/docs/PTHInternals.html ============================================================================== --- vendor/clang/dist/docs/PTHInternals.html Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/PTHInternals.html Tue Dec 15 18:49:47 2009 (r200583) @@ -23,38 +23,38 @@ implementation. If you are interested i User's Manual.

              -

              Using Pretokenized Headers with clang-cc (Low-level Interface)

              +

              Using Pretokenized Headers with clang (Low-level Interface)

              -

              The low-level Clang compiler tool, clang-cc, supports three command -line options for generating and using PTH files.

              +

              The Clang compiler frontend, clang -cc1, supports three command line +options for generating and using PTH files.

              -

              To generate PTH files using clang-cc, use the option +

              To generate PTH files using clang -cc1, use the option -emit-pth: -

               $ clang-cc test.h -emit-pth -o test.h.pth 
              +
               $ clang -cc1 test.h -emit-pth -o test.h.pth 

              This option is transparently used by clang when generating PTH files. Similarly, PTH files can be used as prefix headers using the -include-pth option:

              -  $ clang-cc -include-pth test.h.pth test.c -o test.s
              +  $ clang -cc1 -include-pth test.h.pth test.c -o test.s
               

              Alternatively, Clang's PTH files can be used as a raw "token-cache" (or "content" cache) of the source included by the original header file. This means that the contents of the PTH file are searched as substitutes -for any source files that are used by clang-cc to process a +for any source files that are used by clang -cc1 to process a source file. This is done by specifying the -token-cache option:

                 $ cat test.h
                 #include <stdio.h>
              -  $ clang-cc -emit-pth test.h -o test.h.pth
              +  $ clang -cc1 -emit-pth test.h -o test.h.pth
                 $ cat test.c
                 #include "test.h"
              -  $ clang-cc test.c -o test -token-cache test.h.pth
              +  $ clang -cc1 test.c -o test -token-cache test.h.pth
               

              In this example the contents of stdio.h (and the files it includes) @@ -117,7 +117,7 @@ PTH file needs to be generated during a

            • Reduced memory pressure: Similar to GCC, Clang reads PTH files via the use of memory mapping (i.e., mmap). Clang, however, memory maps PTH files as read-only, meaning that multiple -invocations of clang-cc can share the same pages in memory from a +invocations of clang -cc1 can share the same pages in memory from a memory-mapped PTH file. In comparison, GCC also memory maps its PCH files but also modifies those pages in memory, incurring the copy-on-write costs. The read-only nature of PTH can greatly reduce memory pressure for builds involving @@ -160,7 +160,7 @@ optimizations to speed up the processing

              • stat caching: PTH files cache information obtained via -calls to stat that clang-cc uses to resolve which files are +calls to stat that clang -cc1 uses to resolve which files are included by #include directives. This greatly reduces the overhead involved in context-switching to the kernel to resolve included files.

              • Modified: vendor/clang/dist/docs/UsersManual.html ============================================================================== --- vendor/clang/dist/docs/UsersManual.html Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/UsersManual.html Tue Dec 15 18:49:47 2009 (r200583) @@ -40,6 +40,7 @@ td {
              • Controlling Diagnostics via Pragmas
            • Precompiled Headers
            • +
            • Controlling Code Generation
          48. C Language Features @@ -562,6 +563,29 @@ at the time of PCH use requires one of t stat() caching, to be disabled. However, this change is only likely to affect PCH files that reference a large number of headers.

            + +

            Controlling Code Generation

            + + +

            Clang provides a number of ways to control code generation. The options are listed below.

            + + +
            -fcatch-undefined-behavior: Turn +on runtime code generation to check for undefined behavior.
            + +
            This option, which defaults to off, controls whether or not Clang +adds runtime checks for undefined runtime behavior. If the check fails, +__builtin_trap() is used to indicate failure. +The checks are: +

            +

          49. Subscripting where the static type of one operand is decayed from an + array type and the other operand is greater than the size of the array or + less than zero.
          50. +
          51. Shift operators where the amount shifted is greater or equal to the + promoted bit-width of the left-hand-side or less than zero.
          52. +

            +
            +

            C Language Features

            Modified: vendor/clang/dist/docs/libIndex.html ============================================================================== --- vendor/clang/dist/docs/libIndex.html Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/docs/libIndex.html Tue Dec 15 18:49:47 2009 (r200583) @@ -211,8 +211,8 @@ void bar_func(void) { You first get AST files out of t1.c and t2.c:
            -$ clang-cc -emit-pch t1.c -o t1.ast
            -$ clang-cc -emit-pch t2.c -o t2.ast
            +$ clang -emit-ast t1.c -o t1.ast
            +$ clang -emit-ast t2.c -o t2.ast
             

            Modified: vendor/clang/dist/include/clang-c/Index.h ============================================================================== --- vendor/clang/dist/include/clang-c/Index.h Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/include/clang-c/Index.h Tue Dec 15 18:49:47 2009 (r200583) @@ -104,6 +104,34 @@ enum CXCursorKind { CXCursor_LastInvalid = 72 }; +/** + * \brief Provides the contents of a file that has not yet been saved to disk. + * + * Each CXUnsavedFile instance provides the name of a file on the + * system along with the current contents of that file that have not + * yet been saved to disk. + */ +struct CXUnsavedFile { + /** + * \brief The file whose contents have not yet been saved. + * + * This file must already exist in the file system. + */ + const char *Filename; + + /** + * \brief A null-terminated buffer containing the unsaved contents + * of this file. + */ + const char *Contents; + + /** + * \brief The length of the unsaved contents of this buffer, not + * counting the NULL at the end of the buffer. + */ + unsigned long Length; +}; + /* A cursor into the CXTranslationUnit. */ typedef struct { @@ -174,8 +202,22 @@ CINDEX_LINKAGE void clang_disposeString( */ CINDEX_LINKAGE CXIndex clang_createIndex(int excludeDeclarationsFromPCH, int displayDiagnostics); -CINDEX_LINKAGE void clang_disposeIndex(CXIndex); -CINDEX_LINKAGE CXString clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit); +CINDEX_LINKAGE void clang_disposeIndex(CXIndex index); +CINDEX_LINKAGE CXString +clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit); + +/* + * \brief Request that AST's be generated external for API calls which parse + * source code on the fly, e.g. \see createTranslationUnitFromSourceFile. + * + * Note: This is for debugging purposes only, and may be removed at a later + * date. + * + * \param index - The index to update. + * \param value - The new flag value. + */ +CINDEX_LINKAGE void clang_setUseExternalASTGeneration(CXIndex index, + int value); /* * \brief Create a translation unit from an AST file (-emit-ast). @@ -183,6 +225,7 @@ CINDEX_LINKAGE CXString clang_getTransla CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnit( CXIndex, const char *ast_filename ); + /** * \brief Destroy the specified CXTranslationUnit object. */ @@ -192,20 +235,25 @@ CINDEX_LINKAGE void clang_disposeTransla * \brief Return the CXTranslationUnit for a given source file and the provided * command line arguments one would pass to the compiler. * - * Note: The 'source_filename' argument is optional. If the caller provides a NULL pointer, - * the name of the source file is expected to reside in the specified command line arguments. + * Note: The 'source_filename' argument is optional. If the caller provides a + * NULL pointer, the name of the source file is expected to reside in the + * specified command line arguments. * - * Note: When encountered in 'clang_command_line_args', the following options are ignored: + * Note: When encountered in 'clang_command_line_args', the following options + * are ignored: * * '-c' * '-emit-ast' * '-fsyntax-only' * '-o ' (both '-o' and '' are ignored) * + * + * \param source_filename - The name of the source file to load, or NULL if the + * source file is included in clang_command_line_args. */ CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnitFromSourceFile( - CXIndex CIdx, - const char *source_filename /* specify NULL if the source file is in clang_command_line_args */, + CXIndex CIdx, + const char *source_filename, int num_clang_command_line_args, const char **clang_command_line_args ); @@ -225,13 +273,14 @@ CINDEX_LINKAGE CXTranslationUnit clang_c } static void usage { clang_loadTranslationUnit(CXTranslationUnit, printObjCInterfaceNames); - } + } */ typedef void *CXClientData; typedef void (*CXTranslationUnitIterator)(CXTranslationUnit, CXCursor, CXClientData); -CINDEX_LINKAGE void clang_loadTranslationUnit(CXTranslationUnit, CXTranslationUnitIterator, - CXClientData); +CINDEX_LINKAGE void clang_loadTranslationUnit(CXTranslationUnit, + CXTranslationUnitIterator, + CXClientData); /* Usage: clang_loadDeclaration(). Will load the declaration, issuing a @@ -292,8 +341,9 @@ CINDEX_LINKAGE CXFile clang_getDeclSourc Usage: clang_getCursor() will translate a source/line/column position into an AST cursor (to derive semantic information from the source code). */ -CINDEX_LINKAGE CXCursor clang_getCursor(CXTranslationUnit, const char *source_name, - unsigned line, unsigned column); +CINDEX_LINKAGE CXCursor clang_getCursor(CXTranslationUnit, + const char *source_name, + unsigned line, unsigned column); CINDEX_LINKAGE CXCursor clang_getNullCursor(void); @@ -606,11 +656,11 @@ clang_getNumCompletionChunks(CXCompletio * \param CIdx the \c CXIndex instance that will be used to perform code * completion. * - * \param source_filename the name of the source file that should be parsed - * to perform code-completion. This source file must be the same as or - * include the filename described by \p complete_filename, or no code-completion - * results will be produced. NOTE: One can also specify NULL for this argument if - * the source file is included in command_line_args. + * \param source_filename the name of the source file that should be parsed to + * perform code-completion. This source file must be the same as or include the + * filename described by \p complete_filename, or no code-completion results + * will be produced. NOTE: One can also specify NULL for this argument if the + * source file is included in command_line_args. * * \param num_command_line_args the number of command-line arguments stored in * \p command_line_args. @@ -621,6 +671,13 @@ clang_getNumCompletionChunks(CXCompletio * includes, etc., but should not include any information specific to * code completion. * + * \param num_unsaved_files the number of unsaved file entries in \p + * unsaved_files. + * + * \param unsaved_files the files that have not yet been saved to disk + * but may be required for code completion, including the contents of + * those files. + * * \param complete_filename the name of the source file where code completion * should be performed. In many cases, this name will be the same as the * source filename. However, the completion filename may also be a file @@ -643,6 +700,8 @@ CINDEX_LINKAGE void clang_codeComplete(C const char *source_filename, int num_command_line_args, const char **command_line_args, + unsigned num_unsaved_files, + struct CXUnsavedFile *unsaved_files, const char *complete_filename, unsigned complete_line, unsigned complete_column, Modified: vendor/clang/dist/include/clang/AST/ASTContext.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ASTContext.h Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/include/clang/AST/ASTContext.h Tue Dec 15 18:49:47 2009 (r200583) @@ -45,6 +45,8 @@ namespace clang { class SourceManager; class TargetInfo; // Decls + class CXXMethodDecl; + class CXXRecordDecl; class Decl; class FieldDecl; class ObjCIvarDecl; @@ -57,6 +59,7 @@ namespace clang { class TypeDecl; class TypedefDecl; class UsingDecl; + class UsingShadowDecl; namespace Builtin { class Context; } @@ -105,6 +108,9 @@ class ASTContext { llvm::DenseMap ASTRecordLayouts; llvm::DenseMap ObjCLayouts; + /// KeyFunctions - A cache mapping from CXXRecordDecls to key functions. + llvm::DenseMap KeyFunctions; + /// \brief Mapping from ObjCContainers to their ObjCImplementations. llvm::DenseMap ObjCImpls; @@ -183,8 +189,10 @@ class ASTContext { llvm::DenseMap InstantiatedFromStaticDataMember; - /// \brief Keeps track of the UnresolvedUsingDecls from which UsingDecls - /// where created during instantiation. + /// \brief Keeps track of the declaration from which a UsingDecl was + /// created during instantiation. The source declaration is always + /// a UsingDecl, an UnresolvedUsingValueDecl, or an + /// UnresolvedUsingTypenameDecl. /// /// For example: /// \code @@ -203,8 +211,10 @@ class ASTContext { /// /// This mapping will contain an entry that maps from the UsingDecl in /// B to the UnresolvedUsingDecl in B. - llvm::DenseMap - InstantiatedFromUnresolvedUsingDecl; + llvm::DenseMap InstantiatedFromUsingDecl; + + llvm::DenseMap + InstantiatedFromUsingShadowDecl; llvm::DenseMap InstantiatedFromUnnamedFieldDecl; @@ -282,14 +292,18 @@ public: void setInstantiatedFromStaticDataMember(VarDecl *Inst, VarDecl *Tmpl, TemplateSpecializationKind TSK); - /// \brief If this using decl is instantiated from an unresolved using decl, + /// \brief If the given using decl is an instantiation of a + /// (possibly unresolved) using decl from a template instantiation, /// return it. - NamedDecl *getInstantiatedFromUnresolvedUsingDecl(UsingDecl *UUD); - - /// \brief Note that the using decl \p Inst is an instantiation of - /// the unresolved using decl \p Tmpl of a class template. - void setInstantiatedFromUnresolvedUsingDecl(UsingDecl *Inst, NamedDecl *Tmpl); + NamedDecl *getInstantiatedFromUsingDecl(UsingDecl *Inst); + /// \brief Remember that the using decl \p Inst is an instantiation + /// of the using decl \p Pattern of a class template. + void setInstantiatedFromUsingDecl(UsingDecl *Inst, NamedDecl *Pattern); + + void setInstantiatedFromUsingShadowDecl(UsingShadowDecl *Inst, + UsingShadowDecl *Pattern); + UsingShadowDecl *getInstantiatedFromUsingShadowDecl(UsingShadowDecl *Inst); FieldDecl *getInstantiatedFromUnnamedFieldDecl(FieldDecl *Field); @@ -380,9 +394,10 @@ public: /// equivalent to calling T.withConst(). QualType getConstType(QualType T) { return T.withConst(); } - /// getNoReturnType - Add the noreturn attribute to the given type which must - /// be a FunctionType or a pointer to an allowable type or a BlockPointer. - QualType getNoReturnType(QualType T); + /// getNoReturnType - Add or remove the noreturn attribute to the given type + /// which must be a FunctionType or a pointer to an allowable type or a + /// BlockPointer. + QualType getNoReturnType(QualType T, bool AddNoReturn = true); /// getComplexType - Return the uniqued reference to the type for a complex /// number with the specified element type. @@ -569,7 +584,7 @@ public: /// getSizeType - Return the unique type for "size_t" (C99 7.17), defined /// in . The sizeof operator requires this (C99 6.5.3.4p4). - QualType getSizeType() const; + CanQualType getSizeType() const; /// getWCharType - In C++, this returns the unique wchar_t type. In C99, this /// returns a type compatible with the type defined in as defined @@ -735,12 +750,12 @@ public: DeclarationName getNameForTemplate(TemplateName Name); + TemplateName getOverloadedTemplateName(NamedDecl * const *Begin, + NamedDecl * const *End); + TemplateName getQualifiedTemplateName(NestedNameSpecifier *NNS, bool TemplateKeyword, TemplateDecl *Template); - TemplateName getQualifiedTemplateName(NestedNameSpecifier *NNS, - bool TemplateKeyword, - OverloadedFunctionDecl *Template); TemplateName getDependentTemplateName(NestedNameSpecifier *NNS, const IdentifierInfo *Name); @@ -843,6 +858,13 @@ public: const ASTRecordLayout & getASTObjCImplementationLayout(const ObjCImplementationDecl *D); + /// getKeyFunction - Get the key function for the given record decl. + /// The key function is, according to the Itanium C++ ABI section 5.2.3: + /// + /// ...the first non-pure virtual function that is not inline at the point + /// of class definition. + const CXXMethodDecl *getKeyFunction(const CXXRecordDecl *RD); + void CollectObjCIvars(const ObjCInterfaceDecl *OI, llvm::SmallVectorImpl &Fields); @@ -1108,9 +1130,9 @@ public: void setObjCImplementation(ObjCCategoryDecl *CatD, ObjCCategoryImplDecl *ImplD); - /// \brief Allocate an uninitialized DeclaratorInfo. + /// \brief Allocate an uninitialized TypeSourceInfo. /// - /// The caller should initialize the memory held by DeclaratorInfo using + /// The caller should initialize the memory held by TypeSourceInfo using /// the TypeLoc wrappers. /// /// \param T the type that will be the basis for type source info. This type @@ -1119,13 +1141,13 @@ public: /// /// \param Size the size of the type info to create, or 0 if the size /// should be calculated based on the type. - DeclaratorInfo *CreateDeclaratorInfo(QualType T, unsigned Size = 0); + TypeSourceInfo *CreateTypeSourceInfo(QualType T, unsigned Size = 0); - /// \brief Allocate a DeclaratorInfo where all locations have been + /// \brief Allocate a TypeSourceInfo where all locations have been /// initialized to a given location, which defaults to the empty /// location. - DeclaratorInfo * - getTrivialDeclaratorInfo(QualType T, SourceLocation Loc = SourceLocation()); + TypeSourceInfo * + getTrivialTypeSourceInfo(QualType T, SourceLocation Loc = SourceLocation()); private: ASTContext(const ASTContext&); // DO NOT IMPLEMENT Modified: vendor/clang/dist/include/clang/AST/CanonicalType.h ============================================================================== --- vendor/clang/dist/include/clang/AST/CanonicalType.h Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/include/clang/AST/CanonicalType.h Tue Dec 15 18:49:47 2009 (r200583) @@ -172,6 +172,12 @@ inline bool operator!=(CanQual x, Can /// \brief Represents a canonical, potentially-qualified type. typedef CanQual CanQualType; +inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, + CanQualType T) { + DB << static_cast(T); + return DB; +} + //----------------------------------------------------------------------------// // Internal proxy classes used by canonical types //----------------------------------------------------------------------------// Modified: vendor/clang/dist/include/clang/AST/Decl.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Decl.h Tue Dec 15 18:33:12 2009 (r200582) +++ vendor/clang/dist/include/clang/AST/Decl.h Tue Dec 15 18:49:47 2009 (r200583) @@ -35,17 +35,17 @@ class TypeLoc; /// /// A client can read the relevant info using TypeLoc wrappers, e.g: /// @code -/// TypeLoc TL = DeclaratorInfo->getTypeLoc(); +/// TypeLoc TL = TypeSourceInfo->getTypeLoc(); /// if (PointerLoc *PL = dyn_cast(&TL)) /// PL->getStarLoc().print(OS, SrcMgr); /// @endcode /// -class DeclaratorInfo { +class TypeSourceInfo { QualType Ty; // Contains a memory block after the class, used for type source information, // allocated by ASTContext. friend class ASTContext; - DeclaratorInfo(QualType ty) : Ty(ty) { } + TypeSourceInfo(QualType ty) : Ty(ty) { } public: /// \brief Return the type wrapped by this type source info. QualType getType() const { return Ty; } @@ -322,18 +322,18 @@ public: }; /// \brief Represents a ValueDecl that came out of a declarator. -/// Contains type source information through DeclaratorInfo. +/// Contains type source information through TypeSourceInfo. class DeclaratorDecl : public ValueDecl { - DeclaratorInfo *DeclInfo; + TypeSourceInfo *DeclInfo; protected: DeclaratorDecl(Kind DK, DeclContext *DC, SourceLocation L, - DeclarationName N, QualType T, DeclaratorInfo *DInfo) - : ValueDecl(DK, DC, L, N, T), DeclInfo(DInfo) {} + DeclarationName N, QualType T, TypeSourceInfo *TInfo) + : ValueDecl(DK, DC, L, N, T), DeclInfo(TInfo) {} public: - DeclaratorInfo *getDeclaratorInfo() const { return DeclInfo; } - void setDeclaratorInfo(DeclaratorInfo *DInfo) { DeclInfo = DInfo; } + TypeSourceInfo *getTypeSourceInfo() const { return DeclInfo; } + void setTypeSourceInfo(TypeSourceInfo *TInfo) { DeclInfo = TInfo; } SourceLocation getTypeSpecStartLoc() const; @@ -348,15 +348,23 @@ public: /// which it was evaluated (if any), and whether or not the statement /// is an integral constant expression (if known). struct EvaluatedStmt { - EvaluatedStmt() : WasEvaluated(false), CheckedICE(false), IsICE(false) { } + EvaluatedStmt() : WasEvaluated(false), IsEvaluating(false), CheckedICE(false), + CheckingICE(false), IsICE(false) { } /// \brief Whether this statement was already evaluated. bool WasEvaluated : 1; + /// \brief Whether this statement is being evaluated. + bool IsEvaluating : 1; + /// \brief Whether we already checked whether this statement was an /// integral constant expression. bool CheckedICE : 1; + /// \brief Whether we are checking whether this statement is an + /// integral constant expression. + bool CheckingICE : 1; + /// \brief Whether this statement is an integral constant /// expression. Only valid if CheckedICE is true. bool IsICE : 1; @@ -432,8 +440,8 @@ private: friend class StmtIteratorBase; protected: VarDecl(Kind DK, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, - QualType T, DeclaratorInfo *DInfo, StorageClass SC) - : DeclaratorDecl(DK, DC, L, Id, T, DInfo), Init(), + QualType T, TypeSourceInfo *TInfo, StorageClass SC) + : DeclaratorDecl(DK, DC, L, Id, T, TInfo), Init(), ThreadSpecified(false), HasCXXDirectInit(false), DeclaredInCondition(false) { SClass = SC; @@ -453,7 +461,7 @@ public: static VarDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, - QualType T, DeclaratorInfo *DInfo, StorageClass S); + QualType T, TypeSourceInfo *TInfo, StorageClass S); virtual ~VarDecl(); virtual void Destroy(ASTContext& C); @@ -504,23 +512,45 @@ public: void setInit(ASTContext &C, Expr *I); - /// \brief Note that constant evaluation has computed the given - /// value for this variable's initializer. - void setEvaluatedValue(ASTContext &C, const APValue &Value) const { + EvaluatedStmt *EnsureEvaluatedStmt() const { EvaluatedStmt *Eval = Init.dyn_cast(); if (!Eval) { Stmt *S = Init.get(); - Eval = new (C) EvaluatedStmt; + Eval = new (getASTContext()) EvaluatedStmt; Eval->Value = S; Init = Eval; } + return Eval; + } + + /// \brief Check whether we are in the process of checking whether the + /// initializer can be evaluated. + bool isEvaluatingValue() const { + if (EvaluatedStmt *Eval = Init.dyn_cast()) + return Eval->IsEvaluating; + return false; + } + + /// \brief Note that we now are checking whether the initializer can be + /// evaluated. + void setEvaluatingValue() const { + EvaluatedStmt *Eval = EnsureEvaluatedStmt(); + Eval->IsEvaluating = true; + } + + /// \brief Note that constant evaluation has computed the given + /// value for this variable's initializer. + void setEvaluatedValue(const APValue &Value) const { + EvaluatedStmt *Eval = EnsureEvaluatedStmt(); + Eval->IsEvaluating = false; Eval->WasEvaluated = true; Eval->Evaluated = Value; } /// \brief Return the already-evaluated value of this variable's - /// initializer, or NULL if the value is not yet known. + /// initializer, or NULL if the value is not yet known. Returns pointer + /// to untyped APValue if the value could not be evaluated. APValue *getEvaluatedValue() const { if (EvaluatedStmt *Eval = Init.dyn_cast()) if (Eval->WasEvaluated) @@ -548,17 +578,27 @@ public: return Init.get()->IsICE; } - /// \brief Note that we now know whether the initializer is an + /// \brief Check whether we are in the process of checking the initializer + /// is an integral constant expression. + bool isCheckingICE() const { + if (EvaluatedStmt *Eval = Init.dyn_cast()) + return Eval->CheckingICE; + + return false; + } + + /// \brief Note that we now are checking whether the initializer is an /// integral constant expression. - void setInitKnownICE(ASTContext &C, bool IsICE) const { - EvaluatedStmt *Eval = Init.dyn_cast(); - if (!Eval) { - Stmt *S = Init.get(); - Eval = new (C) EvaluatedStmt; - Eval->Value = S; - Init = Eval; - } + void setCheckingICE() const { + EvaluatedStmt *Eval = EnsureEvaluatedStmt(); + Eval->CheckingICE = true; + } + /// \brief Note that we now know whether the initializer is an + /// integral constant expression. + void setInitKnownICE(bool IsICE) const { + EvaluatedStmt *Eval = EnsureEvaluatedStmt(); + Eval->CheckingICE = false; Eval->CheckedICE = true; Eval->IsICE = IsICE; } @@ -712,7 +752,7 @@ class ImplicitParamDecl : public VarDecl protected: ImplicitParamDecl(Kind DK, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, QualType Tw) - : VarDecl(DK, DC, L, Id, Tw, /*DInfo=*/0, VarDecl::None) {} + : VarDecl(DK, DC, L, Id, Tw, /*TInfo=*/0, VarDecl::None) {} public: static ImplicitParamDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, @@ -739,16 +779,16 @@ class ParmVarDecl : public VarDecl { protected: ParmVarDecl(Kind DK, DeclContext *DC, SourceLocation L, - IdentifierInfo *Id, QualType T, DeclaratorInfo *DInfo, + IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo, StorageClass S, Expr *DefArg) - : VarDecl(DK, DC, L, Id, T, DInfo, S), objcDeclQualifier(OBJC_TQ_None) { + : VarDecl(DK, DC, L, Id, T, TInfo, S), objcDeclQualifier(OBJC_TQ_None) { setDefaultArg(DefArg); } public: static ParmVarDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L,IdentifierInfo *Id, - QualType T, DeclaratorInfo *DInfo, + QualType T, TypeSourceInfo *TInfo, StorageClass S, Expr *DefArg); ObjCDeclQualifier getObjCDeclQualifier() const { @@ -822,8 +862,8 @@ public: } QualType getOriginalType() const { - if (getDeclaratorInfo()) - return getDeclaratorInfo()->getType(); + if (getTypeSourceInfo()) + return getTypeSourceInfo()->getType(); return getType(); } @@ -907,9 +947,9 @@ private: protected: FunctionDecl(Kind DK, DeclContext *DC, SourceLocation L, - DeclarationName N, QualType T, DeclaratorInfo *DInfo, + DeclarationName N, QualType T, TypeSourceInfo *TInfo, StorageClass S, bool isInline) - : DeclaratorDecl(DK, DC, L, N, T, DInfo), + : DeclaratorDecl(DK, DC, L, N, T, TInfo), DeclContext(DK), ParamInfo(0), Body(), SClass(S), IsInline(isInline), @@ -936,7 +976,7 @@ public: static FunctionDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T, - DeclaratorInfo *DInfo, + TypeSourceInfo *TInfo, StorageClass S = None, bool isInline = false, bool hasWrittenPrototype = true); @@ -1272,15 +1312,15 @@ class FieldDecl : public DeclaratorDecl Expr *BitWidth; protected: FieldDecl(Kind DK, DeclContext *DC, SourceLocation L, - IdentifierInfo *Id, QualType T, DeclaratorInfo *DInfo, + IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo, Expr *BW, bool Mutable) - : DeclaratorDecl(DK, DC, L, Id, T, DInfo), Mutable(Mutable), BitWidth(BW) { + : DeclaratorDecl(DK, DC, L, Id, T, TInfo), Mutable(Mutable), BitWidth(BW) { } public: static FieldDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, QualType T, - DeclaratorInfo *DInfo, Expr *BW, bool Mutable); + TypeSourceInfo *TInfo, Expr *BW, bool Mutable); /// isMutable - Determines whether this field is mutable (C++ only). bool isMutable() const { return Mutable; } @@ -1383,28 +1423,28 @@ public: class TypedefDecl : public TypeDecl { /// UnderlyingType - This is the type the typedef is set to. - DeclaratorInfo *DInfo; + TypeSourceInfo *TInfo; TypedefDecl(DeclContext *DC, SourceLocation L, - IdentifierInfo *Id, DeclaratorInfo *DInfo) - : TypeDecl(Typedef, DC, L, Id), DInfo(DInfo) {} + IdentifierInfo *Id, TypeSourceInfo *TInfo) + : TypeDecl(Typedef, DC, L, Id), TInfo(TInfo) {} virtual ~TypedefDecl() {} public: static TypedefDecl *Create(ASTContext &C, DeclContext *DC, *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***