- Dec 03, 2006
-
-
Chris Lattner authored
void bar(int X, int X); void blah(X, Y, X) int X, Y; {} llvm-svn: 39239
-
Chris Lattner authored
llvm-svn: 39238
-
Chris Lattner authored
instead of having a string. llvm-svn: 39237
-
Chris Lattner authored
This allows us to handle typedefs of void correctly. This implements clang/test/Sema/void_arg.c llvm-svn: 39236
-
Chris Lattner authored
X = sizeof(int (void a)); X = sizeof(int (int, void)); X = sizeof(int (void, ...)); We now emit: t.c:6:24: error: void argument may not have a name X = sizeof(int (void a)); ^ t.c:7:24: error: 'void' must be the first and only parameter if specified X = sizeof(int (int, void)); ^ t.c:8:19: error: 'void' must be the first and only parameter if specified X = sizeof(int (void, ...)); ^ And we pretty print this correctly (even though void isn't stored in the arg list of the function type): X = sizeof(int (void)); However, this approach will have to change to handle typedefs of void. llvm-svn: 39235
-
- Dec 02, 2006
-
-
Chris Lattner authored
declarator interface handles all alloc/dealloc issues related to the argument list. Before the client had to alloc and Declarator did the dealloc. llvm-svn: 39234
-
Chris Lattner authored
llvm-svn: 39233
-
Chris Lattner authored
This lets us pretty print stuff like this: void foo() { int X; X = sizeof(void (*(*)())()); X = sizeof(int(*)(int, float, ...)); X = sizeof(void (*(int arga, void (*argb)(double Y)))(void* Z)); as: X = sizeof(void (*(*)())()) X = sizeof(int (*)(int, float, ...)) X = sizeof(void (*(int, void (*)(double)))(void *)) Ah the wonders of 'modern' C syntax! llvm-svn: 39232
-
Chris Lattner authored
llvm-svn: 39231
-
Chris Lattner authored
the info. Also, call Actions.ParseParamDeclaratorType instead of Actions.ParseDeclarator for parameter type lists: we don't want declaration objects created when parsing a function declarator, we just want type info. llvm-svn: 39230
-
Chris Lattner authored
parameters: build an array of ParamInfo structures and pass it to the declarator for safe keeping (it owns the list). Next step: actually populate the arg array with useful stuff. llvm-svn: 39229
-
- Nov 28, 2006
-
-
Chris Lattner authored
llvm-svn: 39228
-
Chris Lattner authored
for things like 'short _Complex'. llvm-svn: 39227
-
Chris Lattner authored
llvm-svn: 39226
-
Chris Lattner authored
llvm-svn: 39225
-
Chris Lattner authored
things like: t.c:4:10: error: invalid storage class specifier in function declarator int foo2(auto int Aaslfkasdflkj, register B); ^ instead of: t.c:4:19: error: invalid storage class specifier in function declarator int foo2(auto int Aaslfkasdflkj, register B); ^ llvm-svn: 39224
-
Chris Lattner authored
llvm-svn: 39223
-
Chris Lattner authored
llvm-svn: 39222
-
Chris Lattner authored
llvm-svn: 39221
-
Chris Lattner authored
llvm-svn: 39220
-
Chris Lattner authored
llvm-svn: 39219
-
- Nov 22, 2006
-
-
Chris Lattner authored
llvm-svn: 39218
-
Chris Lattner authored
llvm-svn: 39217
-
- Nov 21, 2006
-
-
Chris Lattner authored
llvm-svn: 39216
-
Chris Lattner authored
llvm-svn: 39215
-
Chris Lattner authored
llvm-svn: 39214
-
Chris Lattner authored
llvm-svn: 39213
-
Chris Lattner authored
llvm-svn: 39212
-
Chris Lattner authored
next. llvm-svn: 39211
-
Chris Lattner authored
llvm-svn: 39210
-
Chris Lattner authored
state, not aspects of the language standard being parsed. llvm-svn: 39209
-
Chris Lattner authored
llvm-svn: 39208
-
Chris Lattner authored
at once. llvm-svn: 39207
-
Chris Lattner authored
llvm-svn: 39206
-
Chris Lattner authored
llvm-svn: 39205
-
Chris Lattner authored
llvm-svn: 39204
-
Chris Lattner authored
of having a loose collection of function pointers. This also allows clients to maintain state, and reduces the size of the Preprocessor.h interface. llvm-svn: 39203
-
Chris Lattner authored
llvm-svn: 39202
-
Chris Lattner authored
llvm-svn: 39201
-
Chris Lattner authored
llvm-svn: 39200
-