hanchenye-llvm-project/clang/test/CodeGen
Eli Friedman 2b680b43e9 Simplify the scheme used for keywords, and change the classification
scheme to be more useful.

The new scheme introduces a set of categories that should be more 
readable, and also reflects what we want to consider as an extension 
more accurately.  Specifically, it makes the "what is a keyword" 
determination accurately reflect whether the keyword is a GNU or 
Microsoft extension.

I also introduced separate flags for keyword aliases; this is useful 
because the classification of the aliases is mostly unrelated to the 
classification of the original keyword.

This patch treats anything that's in the implementation 
namespace (prefixed with "__", or "_X" where "X" is any upper-case 
letter) as a keyword without marking it as an extension.  This is 
consistent with the standards in that an implementation is allowed to define 
arbitrary extensions in the implementation namespace without violating 
the standard. This gets rid of all the nasty "extension used" warnings 
for stuff like __attribute__ in -pedantic mode.  We still warn for 
extensions outside of the the implementation namespace, like typeof.
If someone wants to implement -Wextensions or something like that, we 
could add additional information to the keyword table.

This also removes processing for the unused "Boolean" language option; 
such an extension isn't supported on any other C implementation, so I 
don't see any point to adding it.

The changes to test/CodeGen/inline.c are required because previously, we 
weren't actually disabling the "inline" keyword in -std=c89 mode.

I'll remove Boolean and NoExtensions from LangOptions in a follow-up 
commit.

llvm-svn: 70281
2009-04-28 03:13:54 +00:00
..
2007-11-29-ArraySizeFromInitializer.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-02-07-bitfield-bug.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-02-08-bitfield-bug.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-02-26-inline-asm-bug.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-17-no-emit-on-error.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-21-mixed-var-fn-decl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-22-bitfield-init-after-zero-len-array.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-22-packed-bitfield-access.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-29-override-alias-decl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-30-implicit-initialization.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-30-redef-of-bitcasted-decl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-31-asm-labels.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-07-31-promotion-of-compound-pointer-arithmetic.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-08-04-void-pointer-arithmetic.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-08-19-cast-of-typedef.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-08-25-incompatible-cond-expr.m Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-09-22-bad-switch-type.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2008-12-02-logical-or-fold.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2009-01-21-invalid-debug-info.m Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2009-03-22-increment-bitfield.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
2009-04-23-dbg.c Handle corner case where clang-cc is invoked directly to compile preprocessed source file without -main-file-name. In this case, CDDebugInfo is not able identify correct main source file becase SM.isFromMainFile() returns true for locations from header files as well as locations from main source file. 2009-04-23 18:09:16 +00:00
OpaqueStruct.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR2001-bitfield-reload.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR2413-void-address-cast-error.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR2643-null-store-to-bitfield.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR2743-reference-missing-static.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR3130-cond-constant.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR3589-freestanding-libcalls.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR3613-static-decl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR3709-int-to-pointer-sign.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
PR3869-indirect-goto-long.c Fix for PR3869: actually enforce that the argument of an indirect goto 2009-03-26 00:18:06 +00:00
address-space-cast.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
address-space.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
alias.c Diagnose uses of function specifiers on declarations which don't declare 2009-04-07 19:37:57 +00:00
align-local.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
alignof.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
array.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
asm.c Ignore plus operands when looking up the operand number from a named operand. This matches llvm-gcc and fixes PR3908. 2009-04-03 05:57:08 +00:00
atomic.c Implement __sync_{add,sub,and,or,xor}_and_fetch and 2009-04-07 00:55:51 +00:00
attr-cleanup.c When calling the cleanup function specified by __attribute__((cleanup)), make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>. 2009-04-26 00:34:20 +00:00
attr-nodebug.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
attr-noinline.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
attr-used.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
attributes.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
bitfield-assign.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
bitfield-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
bitfield.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
blocks-1.c Fixup codegen for nested blocks that use copy/dispose in the inner 2009-04-10 18:52:28 +00:00
blocks-2.c Set DebugInfo at the beginning of GenerateBlockFunction(). 2009-04-15 21:51:44 +00:00
blocks.c use of predefined identifiers like __func__ at global scope warn in sema, 2009-04-21 04:41:23 +00:00
bool-bitfield.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
bool-convert.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
bool-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
boolassign.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtin-count-zeros.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtin-memfns.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtin-rename.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtin-stackaddress.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtinmemcpy.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtins-ffs_parity_popcount.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtins-powi.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtins-x86.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
builtins.c Add more builtin definitions, including strcmp. 2009-04-09 16:42:50 +00:00
builtinshufflevector.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
c-strings.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cast-to-union.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cast.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cfstring.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cfstring2.c remove #include of system header, making this a) not apple specific, and 2009-04-15 04:26:10 +00:00
cleanup-stack.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
complex.c Change compound assignment operators to keep track of both the promoted 2009-03-28 01:22:36 +00:00
compound-literal.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
compound-type.c Change compound assignment operators to keep track of both the promoted 2009-03-28 01:22:36 +00:00
compound.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
conditional-gnu-ext.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
conditional.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
const-init.c Move where block-related variables are initialized so that block 2009-03-28 03:24:54 +00:00
const-label-addr.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
constant-comparison.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
constructor-attribute.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cxx-condition.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cxx-default-arg.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
cxx-value-init.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
darwin-string-literals.c Add target hook for setting symbol prefix and section of unicode 2009-04-03 00:57:44 +00:00
debug-info.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
designated-initializers.c Fix <rdar://problem/6724396>, where we were silently dropping 2009-03-27 23:40:29 +00:00
dllimport-dllexport.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
dostmt.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
emit-all-decls.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
empty-union-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
enum.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
exprs.c fix PR4067: [Linux kernel] cannot aggregate codegen stmtexpr as lvalue 2009-04-25 19:35:26 +00:00
ext-vector-shuffle.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
ext-vector.c Codegen sometimes crashes on comparisons that aren't legal, just 2009-03-31 07:46:52 +00:00
extern-block-var.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
flexible-array-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
func-decl-cleanup.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
func-return-member.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
function-attributes.c defer emission of always_inline, extern_inline, and inline functions (when 2009-04-14 06:44:48 +00:00
function-decay.m don't dump .ll file in this dir. 2009-04-18 07:00:06 +00:00
functions.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
global-decls.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
global-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
global-with-initialiser.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
globalinit.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
illegal-UTF8.m Fixed crasher in <rdar://problem/6780904> [irgen] Assertion failed: (Result == conversionOK && "UTF-8 to UTF-16 conversion failed"), function GetAddrOfConstantCFString, file CodeGenModule.cpp, line 1063. 2009-04-13 19:08:08 +00:00
incomplete-function-type.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
indirect-goto.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
init-with-member-expr.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
inline.c Simplify the scheme used for keywords, and change the classification 2009-04-28 03:13:54 +00:00
int-to-pointer.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
kr-func-promote.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
kr-style-block.c pass -fblocks 2009-04-11 19:49:49 +00:00
libcalls.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
lineno-dbginfo.c Add test case to check line number in debug info. 2009-04-20 19:07:55 +00:00
linkage-redecl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
long-double-x86.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
mandel.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
mangle.c Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem that occurs when 2009-03-31 22:37:52 +00:00
merge-attrs.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
merge-statics.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
mmintrin-test.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
no-common.c Driver: Forward -fno-common to clang. 2009-03-26 16:37:00 +00:00
offsetof.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
opaque-pointer.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
overloadable.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
parameter-passing.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
pascal-string.c Fix pascal string support; testcase from mailing list message. 2009-04-01 03:17:08 +00:00
pointer-arithmetic.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
pointer-cmp-type.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
pointer-to-int.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
private-extern.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6098585-default-after-caserange.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6098585-default-fallthrough-to-caserange.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6098585-empty-case-range.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6098585-fallthrough-to-empty-range.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6098585-unsigned-caserange.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
rdr-6732143-dangling-block-reference.m Fix a subtle bug where the cleanup scope entries had a dangling block reference 2009-04-01 04:37:47 +00:00
regparm.c Testcase for regparm codegen 2009-04-04 00:49:38 +00:00
shared-string-literals.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
sizeof-vla.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
statements.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
static-forward-decl-fun.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
static-forward-decl.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
static-local-union.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
static-order.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
staticinit.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
stdcall-fastcall.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
string-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
string-literal.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct-comma.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct-copy.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct-passing.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct-x86-darwin.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
struct.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
switch.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
tentative-decls.c Ensure that the most recent declaration of a tentative definition wins 2009-04-16 15:34:14 +00:00
thread-specifier.c Print an error for uses of __thread on targets which don't support it. 2009-04-19 21:48:33 +00:00
trapv.c Oops, almost forgot the testcases. 2009-04-02 01:14:26 +00:00
typedef-func.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
typedef.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
types.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
union-init.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
union.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
unwind-attr.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
var-align.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
variable-array.c PR3247: Handle a couple of cases where we weren't emitting VLA sizes (and 2009-04-20 03:54:15 +00:00
vector.c Fix silly mistake in test. 2009-03-28 03:14:28 +00:00
visibility.c Internal variables could mistakenly have "hidden" visibility when 2009-04-10 20:26:50 +00:00
vla.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
volatile.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
weak-global.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
whilestmt.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
writable-strings.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
x86.c fix incorrect lowering of __builtin_ia32_shufpd, rdar://6803924 2009-04-18 07:01:54 +00:00
x86_32-arguments.c x86-32 ABI: Fix crash on return of structure with flexible array 2009-04-27 18:31:32 +00:00
x86_64-arguments.c Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00