69e8f9efab 
								
							 
						 
						
							
							
								
								Several cleanups surrounding Parser::ParseAsmStatement() and Parser::FuzzyParseMicrosoftAsmStatement().  
							
							... 
							
							
							
							llvm-svn: 46977 
							
						 
						
							2008-02-11 23:15:56 +00:00  
				
					
						
							
							
								 
						
							
								2e64d1a50f 
								
							 
						 
						
							
							
								
								Behave correctly if a constraint expression is invalid.  
							
							... 
							
							
							
							llvm-svn: 46910 
							
						 
						
							2008-02-09 19:57:29 +00:00  
				
					
						
							
							
								 
						
							
								8c099c3f03 
								
							 
						 
						
							
							
								
								Use getLogicalLineNumber() in FuzzyParseMicrosoftAsmStatement(), it's more general and simplifies the code.  
							
							... 
							
							
							
							llvm-svn: 46885 
							
						 
						
							2008-02-08 18:01:27 +00:00  
				
					
						
							
							
								 
						
							
								db5f7d7699 
								
							 
						 
						
							
							
								
								Support fuzzy parsing MS line-oriented __asm's that originate from a macro (a case where we can't obtain source line info). As the test case indicates, we don't currently support line-oriented asm statements that mix file/macro body tokens.  
							
							... 
							
							
							
							llvm-svn: 46878 
							
						 
						
							2008-02-08 03:36:19 +00:00  
				
					
						
							
							
								 
						
							
								4e79d340bd 
								
							 
						 
						
							
							
								
								- Add support for fuzzy parsing line-oriented __asm's (yuck).  
							
							... 
							
							
							
							- Change handling of __w64 to a built-in macro.
llvm-svn: 46864 
							
						 
						
							2008-02-07 23:24:32 +00:00  
				
					
						
							
							
								 
						
							
								b2c80c7c7b 
								
							 
						 
						
							
							
								
								Implement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs used in "windows.h".  
							
							... 
							
							
							
							llvm-svn: 46838 
							
						 
						
							2008-02-07 03:50:06 +00:00  
				
					
						
							
							
								 
						
							
								19fe116fc0 
								
							 
						 
						
							
							
								
								Handle simple asm statements correctly.  
							
							... 
							
							
							
							llvm-svn: 46777 
							
						 
						
							2008-02-05 23:03:50 +00:00  
				
					
						
							
							
								 
						
							
								e6016798bf 
								
							 
						 
						
							
							
								
								Fix Parser::ParseObjCTryStmt() to allow for trailing @-keyword statements/expressions.  
							
							... 
							
							
							
							This bug fix is the result of not having 2-token lookahead to recognize specific @-keywords.
llvm-svn: 46768 
							
						 
						
							2008-02-05 21:27:35 +00:00  
				
					
						
							
							
								 
						
							
								e97c4ab30c 
								
							 
						 
						
							
							
								
								Fix  http://llvm.org/bugs/show_bug.cgi?id=1967 .  
							
							... 
							
							
							
							llvm-svn: 46616 
							
						 
						
							2008-01-31 18:29:10 +00:00  
				
					
						
							
							
								 
						
							
								f89ca383d7 
								
							 
						 
						
							
							
								
								Bunch of type defs, etc. for @synchronized.  
							
							... 
							
							
							
							llvm-svn: 46520 
							
						 
						
							2008-01-29 18:21:32 +00:00  
				
					
						
							
							
								 
						
							
								1b0ea82459 
								
							 
						 
						
							
							
								
								Substituted all instances of the string "Objc" for "ObjC".  This fixes  
							
							... 
							
							
							
							some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715 
							
						 
						
							2008-01-07 19:49:32 +00:00  
				
					
						
							
							
								 
						
							
								e908cab389 
								
							 
						 
						
							
							
								
								Added a comment, minor refactoring of foreach parsing code per Chris's suggestion.  
							
							... 
							
							
							
							llvm-svn: 45601 
							
						 
						
							2008-01-04 23:23:46 +00:00  
				
					
						
							
							
								 
						
							
								3622e5954b 
								
							 
						 
						
							
							
								
								Minor changes as suggested by Chris L.  
							
							... 
							
							
							
							llvm-svn: 45598 
							
						 
						
							2008-01-04 23:04:08 +00:00  
				
					
						
							
							
								 
						
							
								732b8c2dc5 
								
							 
						 
						
							
							
								
								Patch to parse/build AST ObjC2's foreach statement.  
							
							... 
							
							
							
							llvm-svn: 45539 
							
						 
						
							2008-01-03 17:55:25 +00:00  
				
					
						
							
							
								 
						
							
								5b12ab8c93 
								
							 
						 
						
							
							
								
								Don't attribute in file headers anymore.  See llvmdev for the  
							
							... 
							
							
							
							discussion of this change.
llvm-svn: 45410 
							
						 
						
							2007-12-29 19:59:25 +00:00  
				
					
						
							
							
								 
						
							
								11221033be 
								
							 
						 
						
							
							
								
								Fix a crash on a top-level objc string, patch by Nico Weber  
							
							... 
							
							
							
							llvm-svn: 45370 
							
						 
						
							2007-12-27 20:29:42 +00:00  
				
					
						
							
							
								 
						
							
								074f325746 
								
							 
						 
						
							
							
								
								remove todo  
							
							... 
							
							
							
							llvm-svn: 44922 
							
						 
						
							2007-12-12 06:54:22 +00:00  
				
					
						
							
							
								 
						
							
								34f92ace1f 
								
							 
						 
						
							
							
								
								Test commit  
							
							... 
							
							
							
							llvm-svn: 44488 
							
						 
						
							2007-12-01 08:06:07 +00:00  
				
					
						
							
							
								 
						
							
								660bdd1c87 
								
							 
						 
						
							
							
								
								Keep track of whether the asm is volatile or not.  
							
							... 
							
							
							
							llvm-svn: 44297 
							
						 
						
							2007-11-23 23:12:25 +00:00  
				
					
						
							
							
								 
						
							
								94ea8aab34 
								
							 
						 
						
							
							
								
								Store output and input operands as well as clobber information in the AsmStmt. Ted, could you please review the serialization/deserialization code?  
							
							... 
							
							
							
							llvm-svn: 44266 
							
						 
						
							2007-11-22 01:36:19 +00:00  
				
					
						
							
							
								 
						
							
								091a059c55 
								
							 
						 
						
							
							
								
								GCC fails if there is a trailing colon but no clobbers.  
							
							... 
							
							
							
							llvm-svn: 44265 
							
						 
						
							2007-11-21 23:27:34 +00:00  
				
					
						
							
							
								 
						
							
								81a5a69682 
								
							 
						 
						
							
							
								
								Store inline asm code in the AST.  
							
							... 
							
							
							
							llvm-svn: 44255 
							
						 
						
							2007-11-20 19:21:03 +00:00  
				
					
						
							
							
								 
						
							
								b313fc3203 
								
							 
						 
						
							
							
								
								Replace 2 method definition actions (ActOnFunctionDefBody, ActOnMethodDefBody) with 1 method definition action (ActOnFinishFunctionBody). I can't think of any reason that we would need two action hooks.  
							
							... 
							
							
							
							llvm-svn: 44000 
							
						 
						
							2007-11-11 23:20:51 +00:00  
				
					
						
							
							
								 
						
							
								8e632940fc 
								
							 
						 
						
							
							
								
								Refactored parsing of main function body for reuse by objective-c methods.  
							
							... 
							
							
							
							llvm-svn: 43898 
							
						 
						
							2007-11-08 19:01:26 +00:00  
				
					
						
							
							
								 
						
							
								c54840433f 
								
							 
						 
						
							
							
								
								More support for rewriting ObjC intefaces. Still some edge cases to handle...  
							
							... 
							
							
							
							llvm-svn: 43493 
							
						 
						
							2007-10-30 02:23:23 +00:00  
				
					
						
							
							
								 
						
							
								5c5808a9a3 
								
							 
						 
						
							
							
								
								improve error recovery handling broken 'then' or 'else' stmts in  
							
							... 
							
							
							
							if statements.  This implements Sema/if-empty-body.c:f3, silencing
a bogus secondary warning.  It also improve the location info for
the nullstmts created for recovery purposes.
llvm-svn: 43440 
							
						 
						
							2007-10-29 05:08:52 +00:00  
				
					
						
							
							
								 
						
							
								645ff3ff61 
								
							 
						 
						
							
							
								
								Fix a parser bug on labeled inline asm stmts, allowing us  
							
							... 
							
							
							
							to parse stuff like:
asm volatile("1:  rex64/fxrstor (%[fx])\n\t"
       "2:\n"
       ".section .fixup,\"ax\"\n"
       "3:  movl $-1,%[err]\n"
       "    jmp  2b\n"
       ".previous\n"
       ".section __ex_table,\"a\"\n"
       "   .align 8\n"
       "   .quad  1b,3b\n"
       ".previous"
       : [err] "=r" (err)
       : [fx] "cdaSDb" (fx), "m" (*fx), "0" (0));
This reduces # diagnostics on PR1750 from 49 to 37.
llvm-svn: 43434 
							
						 
						
							2007-10-29 04:06:22 +00:00  
				
					
						
							
							
								 
						
							
								73c56c0735 
								
							 
						 
						
							
							
								
								Implement *skeletal* support for representing GNU inline asm stmts in the AST,  
							
							... 
							
							
							
							resolving a crash on a .i file in PR1750.  We now generate 49 errors on the
.i file in that bug.
llvm-svn: 43433 
							
						 
						
							2007-10-29 04:04:16 +00:00  
				
					
						
							
							
								 
						
							
								d797113659 
								
							 
						 
						
							
							
								
								Implemented parsing of objctive-c protocol conforming type used in  
							
							... 
							
							
							
							an identifier statement. Fixed up pretty priting to print this type 
correctly.
llvm-svn: 42866 
							
						 
						
							2007-10-11 18:08:47 +00:00  
				
					
						
							
							
								 
						
							
								feb00b6e12 
								
							 
						 
						
							
							
								
								switch more code to use Token::is/isNot where possible.  
							
							... 
							
							
							
							llvm-svn: 42797 
							
						 
						
							2007-10-09 17:41:39 +00:00  
				
					
						
							
							
								 
						
							
								9081457cbf 
								
							 
						 
						
							
							
								
								this patch accomodates clattner's comments on expression processing in @try-statement.  
							
							... 
							
							
							
							llvm-svn: 42611 
							
						 
						
							2007-10-04 20:19:06 +00:00  
				
					
						
							
							
								 
						
							
								62fd2b4730 
								
							 
						 
						
							
							
								
								Patch to parse objective-c's @try-statement and @throw-statement.  
							
							... 
							
							
							
							llvm-svn: 42148 
							
						 
						
							2007-09-19 19:14:32 +00:00  
				
					
						
							
							
								 
						
							
								66356bda5d 
								
							 
						 
						
							
							
								
								Rename statement actions (from Parse-prefix to ActOn-prefix).  
							
							... 
							
							
							
							llvm-svn: 42000 
							
						 
						
							2007-09-16 14:56:35 +00:00  
				
					
						
							
							
								 
						
							
								83895f7888 
								
							 
						 
						
							
							
								
								Rename expression actions (from Parse-prefix to ActOn-prefix).  
							
							... 
							
							
							
							llvm-svn: 41997 
							
						 
						
							2007-09-16 03:34:24 +00:00  
				
					
						
							
							
								 
						
							
								cac27a5478 
								
							 
						 
						
							
							
								
								Fix a bug/missing-feature Ted noticed: the 'unused' warning should not  
							
							... 
							
							
							
							warn about the last stmt in a stmtexpr, f.e. there should be no warning for:
int maxval_stmt_expr(int x, int y) {
  return ({int _a = x, _b = y; _a > _b ? _a : _b; });
}
llvm-svn: 41655 
							
						 
						
							2007-08-31 21:49:55 +00:00  
				
					
						
							
							
								 
						
							
								d864daf5c6 
								
							 
						 
						
							
							
								
								extwarn about decls intermixed with code in c89 mode.  
							
							... 
							
							
							
							llvm-svn: 41477 
							
						 
						
							2007-08-27 04:29:41 +00:00  
				
					
						
							
							
								 
						
							
								dfaf9f8c2f 
								
							 
						 
						
							
							
								
								implement a fixme: __extension__ marker on decls in compound stmts.  
							
							... 
							
							
							
							llvm-svn: 41473 
							
						 
						
							2007-08-27 01:01:57 +00:00  
				
					
						
							
							
								 
						
							
								2dd1b72bde 
								
							 
						 
						
							
							
								
								Fix test/Parser/if-scope-*.c.  Patch by Neil Booth!  
							
							... 
							
							
							
							llvm-svn: 41471 
							
						 
						
							2007-08-26 23:08:06 +00:00  
				
					
						
							
							
								 
						
							
								1a76a3c970 
								
							 
						 
						
							
							
								
								Break the assumption that any sort of scope (e.g. a loop scope) can  
							
							... 
							
							
							
							hold declarations.  Instead, introduce a new "DeclScope" scope type that
holds them explicitly.  For now, all scopes have this bit, but in the 
future we can use them to fix some issues Neil noticed.
llvm-svn: 41431 
							
						 
						
							2007-08-26 06:24:45 +00:00  
				
					
						
							
							
								 
						
							
								8f44d20d69 
								
							 
						 
						
							
							
								
								optimize scope push/pop to avoid work in the common case.  
							
							... 
							
							
							
							llvm-svn: 41265 
							
						 
						
							2007-08-22 05:33:11 +00:00  
				
					
						
							
							
								 
						
							
								8fb2625b40 
								
							 
						 
						
							
							
								
								Fix the scoping issue Neil pointed out for the rest of  
							
							... 
							
							
							
							the selection statements and iteration statements.  Add
spec citations.
llvm-svn: 41264 
							
						 
						
							2007-08-22 05:28:50 +00:00  
				
					
						
							
							
								 
						
							
								37e54f454a 
								
							 
						 
						
							
							
								
								Fix a nasty C99 scope issue that Neil pointed out (for ifs)  
							
							... 
							
							
							
							This fixes test/Parser/control-scope.c
llvm-svn: 41263 
							
						 
						
							2007-08-22 05:16:28 +00:00  
				
					
						
							
							
								 
						
							
								51873c22d8 
								
							 
						 
						
							
							
								
								Refactor switch analysis to make it possible to detect duplicate case values  
							
							... 
							
							
							
							llvm-svn: 40388 
							
						 
						
							2007-07-22 07:07:56 +00:00  
				
					
						
							
							
								 
						
							
								e34b2c298a 
								
							 
						 
						
							
							
								
								Catch goto's with a missing identifier, patch by Neil Booth.  
							
							... 
							
							
							
							llvm-svn: 40381 
							
						 
						
							2007-07-22 04:13:33 +00:00  
				
					
						
							
							
								 
						
							
								146762e7a4 
								
							 
						 
						
							
							
								
								At one point there were going to be lexer and parser tokens.  
							
							... 
							
							
							
							Since that point is now long gone, we should rename LexerToken to
Token, as it is the only kind of token we have.
llvm-svn: 40105 
							
						 
						
							2007-07-20 16:59:19 +00:00  
				
					
						
							
							
								 
						
							
								46eeb22fec 
								
							 
						 
						
							
							
								
								Add initial switch stmt support, patch by Anders Carlsson!  
							
							... 
							
							
							
							llvm-svn: 39989 
							
						 
						
							2007-07-18 02:28:47 +00:00  
				
					
						
							
							
								 
						
							
								436806ad05 
								
							 
						 
						
							
							
								
								In code like this:  
							
							... 
							
							
							
							typedef float float4 __attribute__((vector_size (16)));
void addFloat4(float4 a, float4 b) {
    float4 temp;
}
make sure to add 'temp' to the stmt tree as a declstmt.
llvm-svn: 39722 
							
						 
						
							2007-07-10 05:03:31 +00:00  
				
					
						
							
							
								 
						
							
								cd68f64551 
								
							 
						 
						
							
							
								
								Start bringing the exprstmt hook back.  
							
							... 
							
							
							
							llvm-svn: 39677 
							
						 
						
							2007-06-27 01:06:29 +00:00  
				
					
						
							
							
								 
						
							
								23b7eb677d 
								
							 
						 
						
							
							
								
								Finally bite the bullet and make the major change: split the clang namespace  
							
							... 
							
							
							
							out of the llvm namespace.  This makes the clang namespace be a sibling of
llvm instead of being a child.
The good thing about this is that it makes many things unambiguous.  The
bad things is that many things in the llvm namespace (notably data structures
like smallvector) now require an llvm:: qualifier.  IMO, libsystem and libsupport
should be split out of llvm into their own namespace in the future, which will fix
this issue.
llvm-svn: 39659 
							
						 
						
							2007-06-15 23:05:46 +00:00  
				
					
						
							
							
								 
						
							
								2e550fea6a 
								
							 
						 
						
							
							
								
								When parsing an expr in stmt context, make sure to consume the semicolon  
							
							... 
							
							
							
							after the expr along with the expr.  If we don't do this, the semicolon
gets parsed as a nullstmt, which makes the generated AST very strange.
llvm-svn: 39600 
							
						 
						
							2007-06-06 05:26:32 +00:00