Lines Matching refs:C99
789 // We also allow this in C99 as an extension.
3089 // it's legal per the standard depending on how you read C99 6.7.5.3p15 and
3090 // C99 6.9.1p8.
3377 /// Tentative definition rules (C99 6.9.2p2) are checked by
3491 // C99 6.2.2p4:
3741 // Enforce C99 6.7.3p2: "Types other than pointer types derived from object
3818 // This rule also existed in C89 and C99; the grammar for struct-declaration
4884 // linkage (C99 6.2.2p4-5 and C++ [basic.link]p6).
5221 // C99 6.7.7p2: If a typedef name specifies a variably modified type
5297 /// linkage may still be considered previous declarations (C99
5555 /// will that definition behave like C99's 'inline', where the
5772 // C99 6.9p2: The storage-class specifiers auto and register shall not
6035 // C99 6.7.4p3
7038 // C99 6.7.1p5:
7814 // Check for C99 6.7.5.3p10 - foo(void) is a non-varargs
7870 // Functions returning a variably modified type violate C99 6.7.5.2p2
8576 // static main is not an error under C99, but we should warn about it.
8627 // This is C++ [basic.start.main]p5 and C99 5.1.2.2.3.
8740 // commas outside of a sizeof. In C99, it's the same list,
9253 // C99 6.7.8p5. C++ has no such restriction, but that is a defect.
9456 // C99 6.7.8p4: All the expressions in an initializer for an object that has
9463 // C89 is stricter than C99 for non-static aggregate types.
9467 else if (!getLangOpts().C99 && VDecl->getType()->isAggregateType() &&
9578 // C99 6.7.8p4. All file scoped initializers need to be constant.
9715 // Block scope. C99 6.7p7: If an identifier for an object is
9716 // declared with no linkage (C99 6.2.2p6), the type for the
9739 // File scope. C99 6.9.2p2: A declaration of an identifier for an
9743 // external linkage is valid (C99 6.2.2p5).
9752 // C99 6.9.2p3: If the declaration of an identifier for an object is
9753 // a tentative definition and has internal linkage (C99 6.2.2p3), the
10386 // Verify C99 6.7.5.3p2: The only SCS allowed is 'register'.
10874 // (C99 6.9.1p3, C++ [dcl.fct]p6).
11320 /// call, forming a call to an implicitly defined function (per C99 6.5.1p2).
11333 // Extension in C99. Legal in C90, but warn about it.
11337 else if (getLangOpts().C99)
11495 // FIXME: asprintf and vasprintf aren't C99 functions. Should they be
12109 // C99 6.7.2.3p8 has a similar (but not identical!) provision for
12796 // C99 6.7.2.1p4 - verify the field type.
13039 // C99 6.7.2.1p8: A member of a structure or union may have any type other
13280 // C99 6.7.2.1p8: A member of a structure or union may have any type other
13455 // C99 6.7.2.1p2:
13509 if (!getLangOpts().C99)
13728 // Empty structs are an extension in C (C99 6.7.2.1p7). They are
13738 // Structs without named members are extension in C (C99 6.7.2.1p7),
13887 // C99 6.7.2.2p2: Make sure we have an integer constant expression.
13912 // C99 6.7.2.2p2:
13943 // C99 6.7.2.2p3.
13996 // which in C99 means that the enumerator value is not representable in
13997 // an int (C99 6.7.2.2p2). However, we support GCC's extension that
14004 // Enforce C99 6.7.2.2p2 even when we compute the next value.
14386 // C99 6.4.4.3p2:
14388 // The C99 rule is modified by a gcc extension