Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								4c27ac2348 
								
							 
						 
						
							
							
								
								Make Expr::isConstantInitializer match IRGen.  
							
							 
							
							... 
							
							
							
							Sema needs to be able to accurately determine what will be
emitted as a constant initializer and what will not, so
we get accurate errors in C and accurate -Wglobal-constructors
warnings in C++.  This makes Expr::isConstantInitializer match
CGExprConstant as closely as possible.
llvm-svn: 186464 
							
						 
						
							2013-07-16 22:40:53 +00:00  
						
					 
				
					
						
							
							
								 
								Hans Wennborg
							
						 
						
							 
							
							
							
							
								
							
							
								fa4e41f73c 
								
							 
						 
						
							
							
								
								Move the test for PR13720 from Sema/init.c to Sema/thread-specifier.c.  
							
							 
							
							... 
							
							
							
							Can't use __thread in init.c because it doesn't have a triple.
llvm-svn: 162836 
							
						 
						
							2012-08-29 09:04:10 +00:00  
						
					 
				
					
						
							
							
								 
								Hans Wennborg
							
						 
						
							 
							
							
							
							
								
							
							
								299f50b4e8 
								
							 
						 
						
							
							
								
								The address of a TLS var is not compile-time constant (PR13720)  
							
							 
							
							... 
							
							
							
							This makes Clang produce an error for code such as:
  __thread int x;
  int *p = &x;
The lvalue of a thread-local variable cannot be evaluated at compile
time.
llvm-svn: 162835 
							
						 
						
							2012-08-29 08:44:49 +00:00  
						
					 
				
					
						
							
							
								 
								Aaron Ballman
							
						 
						
							 
							
							
							
							
								
							
							
								6d1bebbad9 
								
							 
						 
						
							
							
								
								Switching to using dyn_cast_or_null, and fixing line endings in the test case.  
							
							 
							
							... 
							
							
							
							llvm-svn: 150209 
							
						 
						
							2012-02-09 22:16:56 +00:00  
						
					 
				
					
						
							
							
								 
								Aaron Ballman
							
						 
						
							 
							
							
							
							
								
							
							
								3bc84198f4 
								
							 
						 
						
							
							
								
								Attempting to initialize a union member that does not exist no longer crashes.  
							
							 
							
							... 
							
							
							
							Patch by Remi Gacogne
llvm-svn: 150144 
							
						 
						
							2012-02-09 03:29:06 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								d8d7a37437 
								
							 
						 
						
							
							
								
								CheckStringInit has side effects; make sure we don't run it in VerifyOnly mode, at least for the moment.  <rdar://problem/10185490>.  
							
							 
							
							... 
							
							
							
							Sebastian, please take a look at this; I'm not entirely sure it is the right thing to do.
llvm-svn: 140552 
							
						 
						
							2011-09-26 19:09:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								88fdea8ad9 
								
							 
						 
						
							
							
								
								fix PR8217, a silent miscompilation of invalid code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116166 
							
						 
						
							2010-10-10 18:16:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								53c9ac30f9 
								
							 
						 
						
							
							
								
								tests: Use -ffreestanding when including stdint.h, to avoid platform dependencies.  
							
							 
							
							... 
							
							
							
							llvm-svn: 113301 
							
						 
						
							2010-09-07 22:54:28 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								a3208f9e7c 
								
							 
						 
						
							
							
								
								Vector types are not arithmetic types, either. Note that we now ban  
							
							 
							
							... 
							
							
							
							__real myvec and __imag myvec, since they aren't all that useful (it's
just an identity function) but we might want to use them in more
restricted cases in the future (e.g., "__real mycomplexvec" could
extract the real parts of a vector of complex numbers).
llvm-svn: 106601 
							
						 
						
							2010-06-22 23:41:02 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								a1f9cc1bec 
								
							 
						 
						
							
							
								
								Fix PR4386 by implementing gcc's old behaviour (4.2) when initializing  
							
							 
							
							... 
							
							
							
							variables with a comparison of a function pointer with 0.
llvm-svn: 103253 
							
						 
						
							2010-05-07 15:18:43 +00:00  
						
					 
				
					
						
							
							
								 
								John McCall
							
						 
						
							 
							
							
							
							
								
							
							
								eae5acbbd0 
								
							 
						 
						
							
							
								
								Fix PR6327:  restore invariants when there's a parse error in an initializer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 99980 
							
						 
						
							2010-03-31 02:13:20 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								7827520ce8 
								
							 
						 
						
							
							
								
								Initialization improvements: addition of string initialization and a few  
							
							 
							
							... 
							
							
							
							small bug fixes in SemaInit, switch over SemaDecl to use it more often, and
change a bunch of diagnostics which are different with the new initialization
code.
llvm-svn: 91767 
							
						 
						
							2009-12-19 08:11:05 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								8fbe78f6fc 
								
							 
						 
						
							
							
								
								Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.  
							
							 
							
							... 
							
							
							
							- This is designed to make it obvious that %clang_cc1 is a "test variable"
   which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
   can be useful to redefine what gets run as 'clang -cc1' (for example, to set
   a default target).
llvm-svn: 91446 
							
						 
						
							2009-12-15 20:14:24 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								f3da334da6 
								
							 
						 
						
							
							
								
								Fix for PR5447: teach Evaluate to deal with floating-point conditionals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90521 
							
						 
						
							2009-12-04 02:12:53 +00:00  
						
					 
				
					
						
							
							
								 
								John McCall
							
						 
						
							 
							
							
							
							
								
							
							
								d5a36321b9 
								
							 
						 
						
							
							
								
								Reorganize the parsing of decl groups / function definitions so that  
							
							 
							
							... 
							
							
							
							declarators are parsed primarily within a single function (at least for
these cases).  Remove some excess diagnostics arising during parse failures.
llvm-svn: 85924 
							
						 
						
							2009-11-03 19:26:08 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								42a8465518 
								
							 
						 
						
							
							
								
								Fix for PR4285: allow intializing a const wchar_t array with a wide  
							
							 
							
							... 
							
							
							
							string.
llvm-svn: 72663 
							
						 
						
							2009-05-31 10:54:53 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								beecd58e21 
								
							 
						 
						
							
							
								
								Explictly track tentative definitions within Sema, then hand those  
							
							 
							
							... 
							
							
							
							tentative definitions off to the ASTConsumer at the end of the
translation unit. 
Eliminate CodeGen's internal tracking of tentative definitions, and
instead hook into ASTConsumer::CompleteTentativeDefinition. Also,
tweak the definition-deferal logic for C++, where there are no
tentative definitions.
Fixes <rdar://problem/6808352>, and will make it much easier for
precompiled headers to cope with tentative definitions in the future.
llvm-svn: 69681 
							
						 
						
							2009-04-21 17:11:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								efb0f111f1 
								
							 
						 
						
							
							
								
								hoist checks for ; and in out of ParseInitDeclaratorListAfterFirstDeclarator  
							
							 
							
							... 
							
							
							
							into ParseSimpleDeclaration, and improve a diagnostic.
llvm-svn: 68009 
							
						 
						
							2009-03-29 17:18:04 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a45cf5b6b0 
								
							 
						 
						
							
							
								
								Rename clang to clang-cc.  
							
							 
							
							... 
							
							
							
							Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602 
							
						 
						
							2009-03-24 02:24:46 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								94c25c66b5 
								
							 
						 
						
							
							
								
								Fix PR3868 by making Evaluate handle cases like "(long)&a + 4".  
							
							 
							
							... 
							
							
							
							llvm-svn: 67593 
							
						 
						
							2009-03-24 01:14:50 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								0760fa1618 
								
							 
						 
						
							
							
								
								Add type checking for tentative definitions at the end of the  
							
							 
							
							... 
							
							
							
							translation unit.
Thread the various declarations of variables via
VarDecl::getPreviousDeclaration.
llvm-svn: 66601 
							
						 
						
							2009-03-10 23:43:53 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3ae5911042 
								
							 
						 
						
							
							
								
								A few small improvements to Evaluate for stuff I noted in FIXMEs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65305 
							
						 
						
							2009-02-23 04:23:56 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								fd85266342 
								
							 
						 
						
							
							
								
								Fix test to be legal on 64-bit systems.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65270 
							
						 
						
							2009-02-22 07:40:57 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								1cba5fe1d1 
								
							 
						 
						
							
							
								
								Downgrade the "excess elements in initializer" errors to warnings *in  
							
							 
							
							... 
							
							
							
							C*. They're required errors in C++.
llvm-svn: 64964 
							
						 
						
							2009-02-18 22:23:55 +00:00  
						
					 
				
					
						
							
							
								 
								Sebastian Redl
							
						 
						
							 
							
							
							
							
								
							
							
								1d8cb2e0d0 
								
							 
						 
						
							
							
								
								Use our new snazzy stdint.h to make a testcase 64-bit portable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63985 
							
						 
						
							2009-02-07 00:23:52 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								0e8fc3c773 
								
							 
						 
						
							
							
								
								Add iterators to LookupResult, allowing one to iterate over the  
							
							 
							
							... 
							
							
							
							non-ambiguous name lookup results without allocating any memory, e.g.,
for sets of overloaded functions.
llvm-svn: 63549 
							
						 
						
							2009-02-02 21:35:47 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								d5576dee1c 
								
							 
						 
						
							
							
								
								Closed out a few radars that were addressed by designated initializers  
							
							 
							
							... 
							
							
							
							llvm-svn: 63398 
							
						 
						
							2009-01-30 17:42:28 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								b66a312f93 
								
							 
						 
						
							
							
								
								Ignore parens when determining if an expr is a string literal. Fixes PR3382.  
							
							 
							
							... 
							
							
							
							llvm-svn: 62922 
							
						 
						
							2009-01-24 17:47:50 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								033d1257ca 
								
							 
						 
						
							
							
								
								Properly manage the bit-widths of APInts/APSInts in array initialization.  
							
							 
							
							... 
							
							
							
							Fixes PR clang/3377
llvm-svn: 62851 
							
						 
						
							2009-01-23 16:54:12 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								dd430f7ec9 
								
							 
						 
						
							
							
								
								Centralize error reporting of improper uses of incomplete types in the  
							
							 
							
							... 
							
							
							
							new DiagnoseIncompleteType. It provides additional information about
struct/class/union/enum types when possible, either by pointing to the
forward declaration of that type or by pointing to the definition (if
we're in the process of defining that type). 
Fixes <rdar://problem/6500531>.
llvm-svn: 62521 
							
						 
						
							2009-01-19 19:26:10 +00:00  
						
					 
				
					
						
							
							
								 
								Sebastian Redl
							
						 
						
							 
							
							
							
							
								
							
							
								632ab20e1e 
								
							 
						 
						
							
							
								
								Fix test cases broken by quote normalization in diagnostics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59888 
							
						 
						
							2008-11-22 22:39:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8c5dd730ce 
								
							 
						 
						
							
							
								
								Fix PR3031 by silencing follow-on errors in invalid declarations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59027 
							
						 
						
							2008-11-11 06:13:16 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								6709e7d4cc 
								
							 
						 
						
							
							
								
								Fix crash caused by this:  
							
							 
							
							... 
							
							
							
							void f() {
   int +; // crash here
}
llvm-svn: 58846 
							
						 
						
							2008-11-07 13:01:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8cc7be369c 
								
							 
						 
						
							
							
								
								Fix PR3001: if we have an error parsing an initializer, make sure to remove  
							
							 
							
							... 
							
							
							
							the designator corresponding to it, otherwise Sema and later parsing will
get confused.
llvm-svn: 58603 
							
						 
						
							2008-11-03 09:28:22 +00:00  
						
					 
				
					
						
							
							
								 
								Nuno Lopes
							
						 
						
							 
							
							
							
							
								
							
							
								dd30e2c677 
								
							 
						 
						
							
							
								
								add the other test case for completeness and to avoid regressions in the future  
							
							 
							
							... 
							
							
							
							llvm-svn: 55629 
							
						 
						
							2008-09-02 10:10:14 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								de09ce03c4 
								
							 
						 
						
							
							
								
								Fix for PR2747: allow pointer->int casts with a null base; these are  
							
							 
							
							... 
							
							
							
							offset-of-like expressions.
llvm-svn: 55627 
							
						 
						
							2008-09-02 09:37:00 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								8d57244601 
								
							 
						 
						
							
							
								
								Add test case for function-pointer-cast-of-global as constant  
							
							 
							
							... 
							
							
							
							expression.
llvm-svn: 55323 
							
						 
						
							2008-08-25 20:08:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5caafe598f 
								
							 
						 
						
							
							
								
								add testcase we already handle.  
							
							 
							
							... 
							
							
							
							llvm-svn: 54967 
							
						 
						
							2008-08-19 00:58:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								28b4294ccf 
								
							 
						 
						
							
							
								
								wrap some long diagnostics, make 'initializer is not a constant' diagnostic  
							
							 
							
							... 
							
							
							
							a bit more clear (rdar://5646070)
llvm-svn: 54606 
							
						 
						
							2008-08-10 01:58:45 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3360d898ec 
								
							 
						 
						
							
							
								
								Make sure to allow assigning a pointer to a bool.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51778 
							
						 
						
							2008-05-30 18:07:22 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								86346ede95 
								
							 
						 
						
							
							
								
								Fix a couple of bugs found by Neil Booth in the const-ness checking.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51361 
							
						 
						
							2008-05-21 03:39:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cfcabaeb7f 
								
							 
						 
						
							
							
								
								add testcase for pr2050 which is now fixed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50610 
							
						 
						
							2008-05-04 01:13:36 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								4297826cac 
								
							 
						 
						
							
							
								
								Improve diagnostic for illegal array initialization.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46869 
							
						 
						
							2008-02-08 00:48:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6311b58000 
								
							 
						 
						
							
							
								
								all filevar's have static storage.  Previously a global with  
							
							 
							
							... 
							
							
							
							extern storage class was returning false from hasStaticStorage.
Ted, please review this.
llvm-svn: 44515 
							
						 
						
							2007-12-02 07:47:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								da22eeca44 
								
							 
						 
						
							
							
								
								add several cases that Expr::hasStaticStorage missed, pointed out by Oliver Hunt  
							
							 
							
							... 
							
							
							
							llvm-svn: 44376 
							
						 
						
							2007-11-27 21:35:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c3ebf29ef6 
								
							 
						 
						
							
							
								
								Implement test/Sema/init.c by treating functions as constants.  
							
							 
							
							... 
							
							
							
							llvm-svn: 43599 
							
						 
						
							2007-11-01 02:45:17 +00:00