]> granicus.if.org Git - clang/commitdiff
minor cleanup
authorNico Weber <nicolasweber@gmx.de>
Fri, 29 Aug 2008 17:02:23 +0000 (17:02 +0000)
committerNico Weber <nicolasweber@gmx.de>
Fri, 29 Aug 2008 17:02:23 +0000 (17:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55538 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/SourceManager.h
lib/Sema/SemaDecl.cpp

index 7cc4087db8bb255844aca158f21057354a411495..770ac803aee5da941e618c845ed36ba47eb1696f 100644 (file)
@@ -432,8 +432,7 @@ public:
 
   /// isInSystemHeader - Returns if a SourceLocation is in a system header.
   bool isInSystemHeader(SourceLocation Loc) const {
-    assert (Loc.isFileID() && "method only valid for file ids");
-    return getFIDInfo(Loc.getFileID())->isSystemHeader();
+    return getFIDInfo(getPhysicalLoc(Loc).getFileID())->isSystemHeader();
   }
   
   /// PrintStats - Print statistics to stderr.
index c6f8c22b087959cb5be6d885a59198d198a71d5f..599f0ba61b2225dfb20af1109fc10d0678cf9df0 100644 (file)
@@ -264,21 +264,10 @@ TypedefDecl *Sema::MergeTypeDefDecl(TypedefDecl *New, Decl *OldD) {
   // this adhoc compatibility rule. FIXME: The following code will not
   // work properly when compiling ".i" files (containing preprocessed output).
   SourceManager &SrcMgr = Context.getSourceManager();
-  HeaderSearch &HdrInfo = PP.getHeaderSearchInfo();
-  const FileEntry *OldDeclFile = SrcMgr.getFileEntryForLoc(Old->getLocation());
-  if (OldDeclFile) {
-    DirectoryLookup::DirType OldDirType = HdrInfo.getFileDirFlavor(OldDeclFile);
-    // Allow reclarations in both SystemHeaderDir and ExternCSystemHeaderDir.
-    if (OldDirType != DirectoryLookup::NormalHeaderDir)
-      return New;
-  }
-  const FileEntry *NewDeclFile = SrcMgr.getFileEntryForLoc(New->getLocation());
-  if (NewDeclFile) {
-    DirectoryLookup::DirType NewDirType = HdrInfo.getFileDirFlavor(NewDeclFile);
-    // Allow reclarations in both SystemHeaderDir and ExternCSystemHeaderDir.
-    if (NewDirType != DirectoryLookup::NormalHeaderDir)
-      return New;
-  }
+  if (SrcMgr.isInSystemHeader(Old->getLocation()))
+    return New;
+  if (SrcMgr.isInSystemHeader(New->getLocation()))
+    return New;
 
   Diag(New->getLocation(), diag::err_redefinition, New->getName());
   Diag(Old->getLocation(), diag::err_previous_definition);