Argyrios Kyrtzidis 
							
						 
					 
					
						
						
							
						
						0db235a2b0 
					 
					
						
						
							
							PointerUnion::getAddrOf() does not need to be template since we can only  
						
						... 
						
						
						
						use the first pointer type for it. Rename it to getAddrOfPtr1().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152106  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-03-06 07:14:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						823eb1ca11 
					 
					
						
						
							
							Fix an obscure bug in PointerUnion that would bite PointerUnion3/4.  Basically,  
						
						... 
						
						
						
						when checking isNull(), we'd pick off the sentinel bit for the outer 
PointerUnion, but would not recursively convert the inner pointerunion to bool,
so if *its* sentinel bit is set, isNull() would incorrectly return false.
No testcase, because someone hit this when they were trying to refactor code
to use PointerUnion3, but they since found a better solution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137428  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-12 04:31:38 +00:00 
						 
				 
			
				
					
						
							
							
								Argyrios Kyrtzidis 
							
						 
					 
					
						
						
							
						
						a36be82664 
					 
					
						
						
							
							Try fixing mingw build.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127153  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-07 05:35:01 +00:00 
						 
				 
			
				
					
						
							
							
								Argyrios Kyrtzidis 
							
						 
					 
					
						
						
							
						
						128ccbb8e5 
					 
					
						
						
							
							Do a compiler check that we use one of the types from PointerUnion[N], instead of a runtime check.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127145  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-07 01:30:20 +00:00 
						 
				 
			
				
					
						
							
							
								Argyrios Kyrtzidis 
							
						 
					 
					
						
						
							
						
						38297f5f76 
					 
					
						
						
							
							Allow getting the address of the value in a PointerUnion or PointerIntPair if one is  
						
						... 
						
						
						
						confident enough that he knows what he is doing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126019  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-19 03:55:58 +00:00 
						 
				 
			
				
					
						
							
							
								Ted Kremenek 
							
						 
					 
					
						
						
							
						
						8260ea5c6c 
					 
					
						
						
							
							Change PointerUnionX::getFromOpaqueValue() to be declared 'static inline' instead of 'static'.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99892  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-30 16:20:03 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						6a66b38846 
					 
					
						
						
							
							Add a bunch of missing "template" keywords to disambiguate dependent template names. GCC eats this ill-formed code, Clang does not. I already filed PR5404 to improve recovery in this case  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86204  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-06 00:12:53 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						26ef510d5d 
					 
					
						
						
							
							Fix a typo, and all of its copies  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77489  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-29 18:27:22 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						e657ec6701 
					 
					
						
						
							
							Implement PointerUnion4.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77487  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-29 18:19:47 +00:00 
						 
				 
			
				
					
						
							
							
								Sebastian Redl 
							
						 
					 
					
						
						
							
						
						37c286c181 
					 
					
						
						
							
							Fix three MSVC 2008 warnings that completely clutter the build output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74430  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-29 17:12:06 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						41222823db 
					 
					
						
						
							
							Allow the use of pointers to const within PointerUnion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68159  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-31 23:19:54 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						da84b25b13 
					 
					
						
						
							
							Stop guessing, start thinking, and make PointerUnion3::is actually be correct.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68126  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-31 18:31:03 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						a7425d7fde 
					 
					
						
						
							
							Really, really fix PointerUnion3::is  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68079  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-31 00:34:31 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						2048cdb08e 
					 
					
						
						
							
							Make PointerUnion3::get work properly  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68067  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-30 21:44:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f54229192c 
					 
					
						
						
							
							update comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68060  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-30 20:44:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e8bc475668 
					 
					
						
						
							
							add a PointerUnion3 class and generalize PointerUnion to work with  
						
						... 
						
						
						
						anything pointer-like, which may or may not actually be a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68056  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-30 20:29:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3a9fe06bfe 
					 
					
						
						
							
							add some comments, add a dyn_cast method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67992  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-29 07:03:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ba315c1ee7 
					 
					
						
						
							
							add helper method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67989  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-29 06:32:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2491e4657d 
					 
					
						
						
							
							Add a simple type-safe bit-mangling pointer union class.  This allows  
						
						... 
						
						
						
						you to do things like:
  ///    PointerUnion<int*, float*> P;
  ///    P = (int*)0;
  ///    printf("%d %d", P.is<int*>(), P.is<float*>()); // prints "1 0"
  ///    X = P.get<int*>();     // ok.
  ///    Y = P.get<float*>();   // runtime assertion failure.
  ///    Z = P.get<double*>();  // does not compile.
  ///    P = (float*)0;
  ///    Y = P.get<float*>();   // ok.
  ///    X = P.get<int*>();     // runtime assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67987  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-29 06:06:02 +00:00