Lines Matching full:c99
647 // We also allow this in C99 as an extension.
2674 // it's legal per the standard depending on how you read C99 6.7.5.3p15 and
2675 // C99 6.9.1p8.
2890 /// Tentative definition rules (C99 6.9.2p2) are checked by
2950 // C99 6.2.2p4:
3107 // Enforce C99 6.7.3p2: "Types other than pointer types derived from object
4175 // linkage (C99 6.2.2p4-5 and C++ [basic.link]p6).
4493 // C99 6.7.7p2: If a typedef name specifies a variably modified type
4569 /// linkage may still be considered previous declarations (C99
4696 /// will that definition behave like C99's 'inline', where the
4838 // C99 6.9p2: The storage-class specifiers auto and register shall not
5135 // C99 6.7.4p3
6074 // C99 6.7.1p5:
6761 // Check for C99 6.7.5.3p10 - foo(void) is a non-varargs
6827 // Functions returning a variably modified type violate C99 6.7.5.2p2
7519 // static main is not an error under C99, but we should warn about it.
7550 // This is C++ [basic.start.main]p5 and C99 5.1.2.2.3.
7648 // commas outside of a sizeof. In C99, it's the same list,
7938 // C99 6.7.8p5. C++ has no such restriction, but that is a defect.
8116 // C99 6.7.8p4: All the expressions in an initializer for an object that has
8122 // C89 is stricter than C99 for non-static aggregate types.
8126 else if (!getLangOpts().C99 && VDecl->getType()->isAggregateType() &&
8236 // C99 6.7.8p4. All file scoped initializers need to be constant.
8367 // Block scope. C99 6.7p7: If an identifier for an object is
8368 // declared with no linkage (C99 6.2.2p6), the type for the
8391 // File scope. C99 6.9.2p2: A declaration of an identifier for an
8395 // external linkage is valid (C99 6.2.2p5).
8404 // C99 6.9.2p3: If the declaration of an identifier for an object is
8405 // a tentative definition and has internal linkage (C99 6.2.2p3), the
8860 // Verify C99 6.7.5.3p2: The only SCS allowed is 'register'.
9238 // (C99 6.9.1p3, C++ [dcl.fct]p6).
9608 /// call, forming a call to an implicitly defined function (per C99 6.5.1p2).
9621 // Extension in C99. Legal in C90, but warn about it.
9625 else if (getLangOpts().C99)
9772 // FIXME: asprintf and vasprintf aren't C99 functions. Should they be
10299 // C99 6.7.2.3p8 has a similar (but not identical!) provision for
10917 // C99 6.7.2.1p4 - verify the field type.
11144 // C99 6.7.2.1p8: A member of a structure or union may have any type other
11375 // C99 6.7.2.1p8: A member of a structure or union may have any type other
11553 // C99 6.7.2.1p2:
11593 } else if (!getLangOpts().C99) {
11807 // Empty structs are an extension in C (C99 6.7.2.1p7), but are allowed in
11813 // Structs without named members are extension in C (C99 6.7.2.1p7), but
11966 // C99 6.7.2.2p2: Make sure we have an integer constant expression.
11991 // C99 6.7.2.2p2:
12022 // C99 6.7.2.2p3.
12075 // which in C99 means that the enumerator value is not representable in
12076 // an int (C99 6.7.2.2p2). However, we support GCC's extension that
12083 // Enforce C99 6.7.2.2p2 even when we compute the next value.
12413 // C99 6.4.4.3p2:
12415 // The C99 rule is modified by a gcc extension