Home | History | Annotate | Download | only in Sema

Lines Matching refs:C99

496 /// DefaultFunctionArrayConversion (C99 6.3.2.1p3, C99 6.3.2.1p4).
528 // to type'...". In C99 this was changed to: C99 6.3.2.1p3: "an expression
530 // (C90) to "an expression" (C99).
536 if (getLangOpts().C99 || getLangOpts().CPlusPlus || E->isLValue())
680 // C99 6.3.2.1p2:
745 /// operators (C99 6.3). The conversions of array and function types are
766 // C99 6.3.1.1p2:
794 /// DefaultArgumentPromotion (C99 6.5.2.2p6). Used for function calls that
1162 // The rules for this case are in C99 6.3.1.8
1253 /// binary operators (C99 6.3.1.8). If both operands aren't arithmetic, this
1304 // Handle complex types first (C99 6.3.1.8p1).
1537 /// concatenation ([C99 5.1.1.2, translation phase #6]), so it may come from
1575 // Get an array type for the string, according to C99 6.4.5. This includes
2137 // extension in C99, forbidden in C++).
2930 // C99 DR 316 says that, if a function type comes from a
3046 case tok::kw___func__: IT = PredefinedExpr::Func; break; // [C99 6.4.2.2]
3320 // 'long long' is a C99 or C++11 feature.
3321 if (!getLangOpts().C99 && Literal.isLongLong) {
3343 // according to the rules of C99 6.4.4.1p5.
3392 else if (!getLangOpts().C99 && !getLangOpts().CPlusPlus11) {
3461 // type (C99 6.2.5p18) or void.
3481 // C99 6.5.3.4p1:
3627 /// C99 6.3.2.1p[2-4] all state:
3765 // C99 6.5.3.4p4: the type (an unsigned integer type) is size_t.
3792 } else if (E->refersToBitField()) { // C99 6.5.3.4p1.
3808 // C99 6.5.3.4p4: the type (an unsigned integer type) is size_t.
4035 // C99 6.5.2.1p1
4065 // C99 6.5.2.1p1: "shall have type "pointer to *object* type". Similarly,
4067 // type. Note that functions are not objects, and that (in C99 parlance)
4143 // C99 6.5.2.1p2: the expression e1[e2] is by definition precisely equivalent
4224 // C99 6.5.2.1p1
4234 // C99 6.5.2.1p1: "shall have type "pointer to *object* type". Similarly,
4236 // type. Note that Functions are not objects, and that (in C99 parlance)
4450 // C99 6.5.2.2p7 - the arguments are implicitly converted, as if by
4619 // Check for violations of C99 static array rules (C99 6.7.5.3p7).
4638 // Otherwise do argument promotion, (C99 6.5.2.2p7).
4667 /// C99 6.7.5.3p7: If the keyword static also appears within the [ and ] of the
5088 // C99 6.5.2.2p1 - "The expression that denotes the called function shall
5164 // Promote the arguments (C99 6.5.2.2p6).
5863 // C99 6.5.15p2
5927 // C99 6.5.15p6: If both operands are pointers to compatible types or to
6011 // ignore qualifiers on void (C99 6.5.15p3, clause 6)
6013 // Figure out necessary qualifiers (C99 6.5.15p6)
6239 /// C99 6.5.15
6287 // to find a common type: C99 6.5.15p3,5.
6297 if (const RecordType *LHSRT = LHSTy->getAs<RecordType>()) { // C99 6.5.15p3
6306 // C99 6.5.15p5: "If both operands have void type, the result has void type."
6312 // C99 6.5.15p6 - "if one operand is a null pointer constant, the result has
6331 // Check constraints for C object pointers types (C99 6.5.15p3,6).
6694 // being closely modeled after the C99 spec:-). The odd characteristic of this
6713 // C99 6.5.16.1p1: This following citation is common to constraints
6747 // C99 6.5.16.1p1 (constraint 4): If one operand is a pointer to an object or
6768 // C99 6.5.16.1p1 (constraint 3): both operands are pointers to qualified or
6900 /// CheckAssignmentConstraints (C99 6.5.16) - This routine currently
6914 /// C99 spec dictates.
7315 // C99 6.5.16.1p1: the left operand is a pointer and the right is
7355 // C99 6.5.16.1p2: The value of the right operand is converted to the
7913 // C99 6.5.6
7991 // C99 6.5.6
8011 // Enforce type constraints: C99 6.5.6p3.
8052 // Pointee types must be compatible C99 6.5.6p3
8233 // C99 6.5.7
8262 // promotions on each operand. C99 6.5.7p3
8279 // C99 6.5.7p2: Each of the operands shall have integer type.
8607 // C99 6.5.8, C++ [expr.rel]
8702 // C99 6.5.8p3 / C99 6.5.9p4
8744 if (LHSType->isPointerType() && RHSType->isPointerType()) { // C99 6.5.8p2
8777 // C99 6.5.9p2 and C99 6.5.8p2
9114 // C99 6.5.[13,14]
9392 switch (IsLV) { // C99 6.5.16p2
9518 // C99 6.5.16.1
9611 // C99 6.5.16p3: The type of an assignment expression is the type of the
9614 // C99 6.5.16.1p2: In simple assignment, the value of the right operand
9622 // C99 6.5.17
9630 // C's comma performs lvalue conversion (C99 6.3.2.1) on both its
9690 // C99 6.5.2.4p2, 6.5.6p2
9700 // C99 does not support ++/-- on complex types, we allow as an extension.
9818 /// operator (C99 6.3.2.1p[2-4]), and its result is never an lvalue.
9870 if (getLangOpts().C99) {
9871 // Implement C99-only parts of addressof rules.
9874 // Per C99 6.5.3.2, the address of a deref always returns a valid result
9946 // C99 6.5.3.2p1
9958 } else if (op->getObjectKind() == OK_BitField) { // C99 6.5.3.2p1
9964 } else if (dcl) { // C99 6.5.3.2p1
10081 // Note that per both C89 and C99, indirection is always legal, even if Result
10819 if (resultType->isArithmeticType()) // C99 6.5.3.3p1
10842 // C99 6.5.3.3p1. We allow complex int and float as a GCC extension.
10844 // C99 does not support '~' for complex conjugation.
10866 // Unlike +/-/~, integer promotions aren't done here (C99 6.5.3.3p5).
10880 // C99 6.5.3.3p1: ok, fallthrough;
10912 // LNot always has type int. C99 6.5.3.3p5.
11180 // Type must be complete per C99 7.17p3 because a declaring a variable
11288 // C99 7.17p3:
12403 /// (C++ [basic.def.odr]p2, C99 6.9p3)
13539 /// (C++ [basic.def.odr]p2, C99 6.9p3). Note that this should not be
13942 if (!T->isScalarType()) { // C99 6.8.4.1p1