forked from OSchip/llvm-project
				
			Finish off the refactoring of type handling stuff. Now we recompile every
tag decl after it has been completed llvm-svn: 46798
This commit is contained in:
		
							parent
							
								
									73451846a7
								
							
						
					
					
						commit
						a5e4d30942
					
				| 
						 | 
				
			
			@ -71,9 +71,19 @@ namespace {
 | 
			
		|||
        // FIXME: implement C++ linkage, C linkage works mostly by C
 | 
			
		||||
        // language reuse already.
 | 
			
		||||
      } else {
 | 
			
		||||
        Builder->EmitType(cast<TypeDecl>(D));
 | 
			
		||||
        assert(isa<TypeDecl>(D) && "Unknown top level decl");
 | 
			
		||||
        // TODO: handle debug info?
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /// HandleTagDeclDefinition - This callback is invoked each time a TagDecl
 | 
			
		||||
    /// (e.g. struct, union, enum, class) is completed.  This allows the client to
 | 
			
		||||
    /// hack on the type, which can occur at any point in the file (because these
 | 
			
		||||
    /// can be defined in declspecs).
 | 
			
		||||
    virtual void HandleTagDeclDefinition(TagDecl *D) {
 | 
			
		||||
      Builder->EmitType(D);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// RUN: clang -emit-llvm %s
 | 
			
		||||
// RUN: clang -emit-llvm <%s
 | 
			
		||||
 | 
			
		||||
struct FileName {
 | 
			
		||||
    struct FileName *next;
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,12 @@ struct ieeeExternal {
 | 
			
		|||
} *exthead;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void f()
 | 
			
		||||
void test1()
 | 
			
		||||
{
 | 
			
		||||
    struct ieeeExternal *exttmp = exthead;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct MpegEncContext;
 | 
			
		||||
typedef struct MpegEncContext {int pb;} MpegEncContext;
 | 
			
		||||
static void test2(void) {MpegEncContext s; s.pb;}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue