[llvm-branch-commits] [cfe-branch] r128024 - in /cfe/branches/release_29: ./ include/clang/Basic/DiagnosticParseKinds.td lib/CodeGen/CGCall.cpp lib/Driver/ToolChains.cpp lib/Frontend/InitHeaderSearch.cpp lib/Parse/ParseStmt.cpp test/SemaCXX/cxx0x-return-init-list.cpp test/SemaCXX/warn-unreachable.cpp

Bill Wendling isanbard at gmail.com
Mon Mar 21 14:29:27 PDT 2011


Author: void
Date: Mon Mar 21 16:29:27 2011
New Revision: 128024

URL: http://llvm.org/viewvc/llvm-project?rev=128024&view=rev
Log:
--- Merging r127405 into '.':
U    lib/CodeGen/CGCall.cpp
--- Merging r127507 into '.':
A    test/SemaCXX/cxx0x-return-init-list.cpp
U    include/clang/Basic/DiagnosticParseKinds.td
U    lib/Parse/ParseStmt.cpp
--- Merging r127583 into '.':
U    lib/Driver/ToolChains.cpp
--- Merging r127582 into '.':
U    lib/Frontend/InitHeaderSearch.cpp


Added:
    cfe/branches/release_29/test/SemaCXX/cxx0x-return-init-list.cpp
      - copied unchanged from r127507, cfe/trunk/test/SemaCXX/cxx0x-return-init-list.cpp
Modified:
    cfe/branches/release_29/   (props changed)
    cfe/branches/release_29/include/clang/Basic/DiagnosticParseKinds.td
    cfe/branches/release_29/lib/CodeGen/CGCall.cpp
    cfe/branches/release_29/lib/Driver/ToolChains.cpp
    cfe/branches/release_29/lib/Frontend/InitHeaderSearch.cpp
    cfe/branches/release_29/lib/Parse/ParseStmt.cpp
    cfe/branches/release_29/test/SemaCXX/warn-unreachable.cpp   (props changed)

Propchange: cfe/branches/release_29/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 21 16:29:27 2011
@@ -1,2 +1,2 @@
-/cfe/trunk:127283,127308,127326,127373,127460,127512,127541,127543,127563,127623,127737-127738,127806,127980
+/cfe/trunk:127283,127308,127326,127373,127405,127460,127507,127512,127541,127543,127563,127580,127582-127583,127623,127737-127738,127806,127980
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/release_29/include/clang/Basic/DiagnosticParseKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_29/include/clang/Basic/DiagnosticParseKinds.td?rev=128024&r1=128023&r2=128024&view=diff
==============================================================================
--- cfe/branches/release_29/include/clang/Basic/DiagnosticParseKinds.td (original)
+++ cfe/branches/release_29/include/clang/Basic/DiagnosticParseKinds.td Mon Mar 21 16:29:27 2011
@@ -178,6 +178,9 @@
   "reference qualifiers on functions are a C++0x extension">, InGroup<CXX0x>;
 def ext_inline_namespace : ExtWarn<
   "inline namespaces are a C++0x feature">, InGroup<CXX0x>;
+def ext_generalized_initializer_lists : ExtWarn<
+  "generalized initializer lists are a C++0x extension unsupported in Clang">,
+  InGroup<CXX0x>;
 def err_argument_required_after_attribute : Error<
   "argument required after attribute">;
 def err_missing_param : Error<"expected parameter declarator">;

Modified: cfe/branches/release_29/lib/CodeGen/CGCall.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_29/lib/CodeGen/CGCall.cpp?rev=128024&r1=128023&r2=128024&view=diff
==============================================================================
--- cfe/branches/release_29/lib/CodeGen/CGCall.cpp (original)
+++ cfe/branches/release_29/lib/CodeGen/CGCall.cpp Mon Mar 21 16:29:27 2011
@@ -881,8 +881,10 @@
           // copy.
           const llvm::Type *I8PtrTy = Builder.getInt8PtrTy();
           CharUnits Size = getContext().getTypeSizeInChars(Ty);
-          Builder.CreateMemCpy(Builder.CreateBitCast(AlignedTemp, I8PtrTy),
-                               Builder.CreateBitCast(V, I8PtrTy),
+          llvm::Value *Dst = Builder.CreateBitCast(AlignedTemp, I8PtrTy);
+          llvm::Value *Src = Builder.CreateBitCast(V, I8PtrTy);
+          Builder.CreateMemCpy(Dst,
+                               Src,
                                llvm::ConstantInt::get(IntPtrTy, 
                                                       Size.getQuantity()),
                                ArgI.getIndirectAlign(),

Modified: cfe/branches/release_29/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_29/lib/Driver/ToolChains.cpp?rev=128024&r1=128023&r2=128024&view=diff
==============================================================================
--- cfe/branches/release_29/lib/Driver/ToolChains.cpp (original)
+++ cfe/branches/release_29/lib/Driver/ToolChains.cpp Mon Mar 21 16:29:27 2011
@@ -1280,6 +1280,8 @@
   Fedora13,
   Fedora14,
   OpenSuse11_3,
+  UbuntuHardy,
+  UbuntuIntrepid,
   UbuntuJaunty,
   UbuntuKarmic,
   UbuntuLucid,
@@ -1300,7 +1302,8 @@
 }
 
 static bool IsUbuntu(enum LinuxDistro Distro) {
-  return Distro == UbuntuLucid || Distro == UbuntuMaverick || 
+  return Distro == UbuntuHardy  || Distro == UbuntuIntrepid ||
+         Distro == UbuntuLucid  || Distro == UbuntuMaverick || 
          Distro == UbuntuJaunty || Distro == UbuntuKarmic;
 }
 
@@ -1329,6 +1332,10 @@
     llvm::SmallVector<llvm::StringRef, 8> Lines;
     Data.split(Lines, "\n");
     for (unsigned int i = 0, s = Lines.size(); i < s; ++ i) {
+      if (Lines[i] == "DISTRIB_CODENAME=hardy")
+        return UbuntuHardy;
+      if (Lines[i] == "DISTRIB_CODENAME=intrepid")
+        return UbuntuIntrepid;      
       if (Lines[i] == "DISTRIB_CODENAME=maverick")
         return UbuntuMaverick;
       else if (Lines[i] == "DISTRIB_CODENAME=lucid")
@@ -1444,7 +1451,8 @@
 
   const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
                                "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
-                               "4.3"};
+                               "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
+                               "4.2"};
   std::string Base = "";
   for (unsigned i = 0; i < sizeof(GccVersions)/sizeof(char*); ++i) {
     std::string Suffix = GccTriple + "/" + GccVersions[i];

Modified: cfe/branches/release_29/lib/Frontend/InitHeaderSearch.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_29/lib/Frontend/InitHeaderSearch.cpp?rev=128024&r1=128023&r2=128024&view=diff
==============================================================================
--- cfe/branches/release_29/lib/Frontend/InitHeaderSearch.cpp (original)
+++ cfe/branches/release_29/lib/Frontend/InitHeaderSearch.cpp Mon Mar 21 16:29:27 2011
@@ -741,7 +741,19 @@
                                 "i686-pc-linux-gnu", "", "", triple);
     AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
                                 "x86_64-unknown-linux-gnu", "", "", triple);
-    // Gentoo x86 2010.0 stable
+    // Gentoo x86 gcc 4.5.2
+    AddGnuCPlusPlusIncludePaths(
+      "/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/g++-v4",
+      "i686-pc-linux-gnu", "", "", triple);
+    // Gentoo x86 gcc 4.4.5
+    AddGnuCPlusPlusIncludePaths(
+      "/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/include/g++-v4",
+      "i686-pc-linux-gnu", "", "", triple);
+    // Gentoo x86 gcc 4.4.4
+    AddGnuCPlusPlusIncludePaths(
+      "/usr/lib/gcc/i686-pc-linux-gnu/4.4.4/include/g++-v4",
+      "i686-pc-linux-gnu", "", "", triple);
+   // Gentoo x86 2010.0 stable
     AddGnuCPlusPlusIncludePaths(
       "/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/g++-v4",
       "i686-pc-linux-gnu", "", "", triple);
@@ -757,7 +769,15 @@
     AddGnuCPlusPlusIncludePaths(
       "/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/g++-v4",
       "i686-pc-linux-gnu", "", "", triple);
+    // Gentoo x86 llvm-gcc trunk
+    AddGnuCPlusPlusIncludePaths(
+        "/usr/lib/llvm-gcc-4.2-9999/include/c++/4.2.1",
+        "i686-pc-linux-gnu", "", "", triple);
 
+    // Gentoo amd64 gcc 4.5.2
+    AddGnuCPlusPlusIncludePaths(
+        "/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4",
+        "x86_64-pc-linux-gnu", "32", "", triple);
     // Gentoo amd64 gcc 4.4.5
     AddGnuCPlusPlusIncludePaths(
         "/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/include/g++-v4",
@@ -777,7 +797,7 @@
     // Gentoo amd64 stable
     AddGnuCPlusPlusIncludePaths(
         "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4",
-        "i686-pc-linux-gnu", "", "", triple);
+        "x86_64-pc-linux-gnu", "", "", triple);
 
     // Gentoo amd64 llvm-gcc trunk
     AddGnuCPlusPlusIncludePaths(

Modified: cfe/branches/release_29/lib/Parse/ParseStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_29/lib/Parse/ParseStmt.cpp?rev=128024&r1=128023&r2=128024&view=diff
==============================================================================
--- cfe/branches/release_29/lib/Parse/ParseStmt.cpp (original)
+++ cfe/branches/release_29/lib/Parse/ParseStmt.cpp Mon Mar 21 16:29:27 2011
@@ -1267,7 +1267,16 @@
       return StmtError();
     }
         
-    R = ParseExpression();
+    // FIXME: This is a hack to allow something like C++0x's generalized
+    // initializer lists, but only enough of this feature to allow Clang to
+    // parse libstdc++ 4.5's headers.
+    if (Tok.is(tok::l_brace) && getLang().CPlusPlus) {
+      R = ParseInitializer();
+      if (R.isUsable() && !getLang().CPlusPlus0x)
+        Diag(R.get()->getLocStart(), diag::ext_generalized_initializer_lists)
+          << R.get()->getSourceRange();
+    } else
+        R = ParseExpression();
     if (R.isInvalid()) {  // Skip to the semicolon, but don't consume it.
       SkipUntil(tok::semi, false, true);
       return StmtError();

Propchange: cfe/branches/release_29/test/SemaCXX/warn-unreachable.cpp
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 21 16:29:27 2011
@@ -1 +1 @@
-/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961,127283,127308,127326,127373,127460,127512,127541,127543,127563,127623,127737-127738,127806,127980
+/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961,127283,127308,127326,127373,127405,127460,127507,127512,127541,127543,127563,127580,127582-127583,127623,127737-127738,127806,127980





More information about the llvm-branch-commits mailing list