Lines Matching refs:Array
416 // In C90 mode, arrays only promote to pointers if the array expression is
418 // type 'array of type' is converted to an expression that has type 'pointer
420 // that has type 'array of type' ...". The relevant change is "an lvalue"
424 // An lvalue or rvalue of type "array of N T" or "array of unknown bound of
462 // A glvalue of a non-function, non-array type T can be
542 /// operators (C99 6.3). The conversions of array and function types are
543 /// sometimes suppressed. For example, the array->pointer conversion doesn't
544 /// apply if the array is an argument to the sizeof or address (&) operators.
1385 // Get an array type for the string, according to C99 6.4.5. This includes
3116 /// The lvalue-to-rvalue, array-to-pointer, and function-to-pointer
3419 // to the expression *((e1)+(e2)). This means the array "Base" may actually be
3420 // in the subscript position. As a result, we need to derive the array base
3474 // If we see an array that wasn't promoted by
3475 // DefaultFunctionArrayLvalueConversion, it must be an array that
3821 // Check for array bounds violations for each argument to the call. This
3826 // Check for violations of C99 static array rules (C99 6.7.5.3p7).
3855 // Check for array bounds violations.
3870 /// array parameter, check that it is non-null, and that if it is formed by
3871 /// array-to-pointer decay, the underlying array is sufficiently large.
3874 /// array type derivation, then for each call to the function, the value of the
3876 /// an array with at least as many elements as specified by the size expression.
3881 // Static array parameters are not supported in C++.
3920 /// ActOnCallExpr - Handle a call to Fn with the specified array of arguments.
6543 // Check array bounds for pointer arithemtic
6598 // Check array bounds for pointer arithemtic
6936 // "array literal"
7080 << 1 // array
8011 /// - &s.zz[1].yy -> s, if zz is an array
8012 /// - *(x + 1) -> x, if x is an array
8128 // Technically, there should be a check for array subscript
8532 // Check for array bounds violations for both sides of the BinaryOperator
8992 // Check for array bounds violations in the operand of the UnaryOperator,
8994 // by CheckArrayAccess (as there are special cases like &array[arraysize]
9176 // Do function/array conversion on the last expression, but not
9262 // Offset of an array sub-field. TODO: Should we allow vector elements?
9285 // Record this array index.
9758 // Deal with implicit array decay; for example, on x86-64,
9759 // va_list is an array, but it's supposed to decay to
9871 // array-to-pointer decays), and not-so-opaque values. The last is
9934 // Perform array-to-pointer decay if necessary.
10473 // template argument, array bound or an expression in a braced-init-list),
10639 // diagnostic for certain cases like using a local variable in an array bound
10689 // object. (For array members, the array elements are
10707 // When the field has array type, create index variables for each
10708 // dimension of the array. We use these index variables to subscript
10709 // the source array, and other clients (e.g., CodeGen) will perform
10715 while (const ConstantArrayType *Array
10717 // Create the iteration variable for this array index.
10742 // Subscript the array with this iteration variable.
10753 BaseType = Array->getElementType();
10756 // Construct the entity that we will be initializing. For an array, this
10757 // will be first element in the array, which may require several levels
10758 // of array-subscript entities.
10873 // Prohibit structs with flexible array members too.