[llvm-branch-commits] [cfe-tag] r286888 - Tagging checker-279.

2016-11-14 Thread Devin Coughlin via llvm-branch-commits
Author: dcoughlin
Date: Mon Nov 14 15:00:57 2016
New Revision: 286888

URL: http://llvm.org/viewvc/llvm-project?rev=286888&view=rev
Log:
Tagging checker-279.

Added:
cfe/tags/checker/checker-279/   (props changed)
  - copied from r286863, cfe/trunk/

Propchange: cfe/tags/checker/checker-279/
--
--- svn:ignore (added)
+++ svn:ignore Mon Nov 14 15:00:57 2016
@@ -0,0 +1,3 @@
+configure.out
+cscope.files
+cscope.out

Propchange: cfe/tags/checker/checker-279/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Nov 14 15:00:57 2016
@@ -0,0 +1,3 @@
+/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk/test:170344
+/cfe/trunk/test/SemaTemplate:126920


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-tag] r286889 - Tagging checker-279.

2016-11-14 Thread Devin Coughlin via llvm-branch-commits
Author: dcoughlin
Date: Mon Nov 14 15:01:18 2016
New Revision: 286889

URL: http://llvm.org/viewvc/llvm-project?rev=286889&view=rev
Log:
Tagging checker-279.

Added:
llvm/tags/checker/checker-279/   (props changed)
  - copied from r286863, llvm/trunk/

Propchange: llvm/tags/checker/checker-279/
--
--- svn:ignore (added)
+++ svn:ignore Mon Nov 14 15:01:18 2016
@@ -0,0 +1,25 @@
+Debug
+Release
+Release-Asserts
+mklib
+Makefile.config
+config.log
+config.status
+cvs.out
+autom4te.cache
+configure.out
+LLVM-*
+_distcheckdir
+llvm.spec
+svn-commit.*
+*.patch
+*.patch.raw
+cscope.*
+Debug+Coverage-Asserts
+Release+Coverage-Asserts
+Debug+Coverage
+Release+Coverage
+Debug+Checks
+Debug+Asserts
+Release+Asserts
+build

Propchange: llvm/tags/checker/checker-279/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Nov 14 15:01:18 2016
@@ -0,0 +1,3 @@
+/llvm/branches/Apple/Pertwee:110850,110961
+/llvm/branches/type-system-rewrite:133420-134817
+/llvm/trunk:155241


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r286918 - Merging r281287:

2016-11-14 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Mon Nov 14 18:51:55 2016
New Revision: 286918

URL: http://llvm.org/viewvc/llvm-project?rev=286918&view=rev
Log:
Merging r281287:

r281287 | rtrieu | 2016-09-12 18:37:01 -0700 (Mon, 12 Sep 2016) | 2 lines

Handle empty message in static_asserts.



Modified:
cfe/branches/release_39/tools/libclang/CIndex.cpp

Modified: cfe/branches/release_39/tools/libclang/CIndex.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/tools/libclang/CIndex.cpp?rev=286918&r1=286917&r2=286918&view=diff
==
--- cfe/branches/release_39/tools/libclang/CIndex.cpp (original)
+++ cfe/branches/release_39/tools/libclang/CIndex.cpp Mon Nov 14 18:51:55 2016
@@ -1243,8 +1243,9 @@ bool CursorVisitor::VisitUnresolvedUsing
 bool CursorVisitor::VisitStaticAssertDecl(StaticAssertDecl *D) {
   if (Visit(MakeCXCursor(D->getAssertExpr(), StmtParent, TU, 
RegionOfInterest)))
 return true;
-  if (Visit(MakeCXCursor(D->getMessage(), StmtParent, TU, RegionOfInterest)))
-return true;
+  if (StringLiteral *Message = D->getMessage())
+if (Visit(MakeCXCursor(Message, StmtParent, TU, RegionOfInterest)))
+  return true;
   return false;
 }
 


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r286922 - Merging r282989:

2016-11-14 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Mon Nov 14 19:05:08 2016
New Revision: 286922

URL: http://llvm.org/viewvc/llvm-project?rev=286922&view=rev
Log:
Merging r282989:

r282989 | rtrieu | 2016-09-30 17:15:24 -0700 (Fri, 30 Sep 2016) | 10 lines

Fix crash when emitting error.

With templated classes, is possible to not be able to determine is a member
function is a special member function before the class is instantiated.  Only
these special member functions can be defaulted.  In some cases, knowing
whether a function is a special member function can't be determined until
instantiation, so an uninstantiated function could possibly be defaulted too.
Add a case to the error diagnostic when the function marked with a default is
not known to be a special member function.



Modified:
cfe/branches/release_39/include/clang/Basic/DiagnosticSemaKinds.td
cfe/branches/release_39/test/SemaCXX/cxx0x-defaulted-functions.cpp

Modified: cfe/branches/release_39/include/clang/Basic/DiagnosticSemaKinds.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/Basic/DiagnosticSemaKinds.td?rev=286922&r1=286921&r2=286922&view=diff
==
--- cfe/branches/release_39/include/clang/Basic/DiagnosticSemaKinds.td 
(original)
+++ cfe/branches/release_39/include/clang/Basic/DiagnosticSemaKinds.td Mon Nov 
14 19:05:08 2016
@@ -4291,7 +4291,7 @@ def err_definition_of_implicitly_declare
 def err_definition_of_explicitly_defaulted_member : Error<
   "definition of explicitly defaulted %select{default constructor|copy "
   "constructor|move constructor|copy assignment operator|move assignment "
-  "operator|destructor}0">;
+  "operator|destructor|function}0">;
 def err_redefinition_extern_inline : Error<
   "redefinition of a 'extern inline' function %0 is not supported in "
   "%select{C99 mode|C++}1">;

Modified: cfe/branches/release_39/test/SemaCXX/cxx0x-defaulted-functions.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/test/SemaCXX/cxx0x-defaulted-functions.cpp?rev=286922&r1=286921&r2=286922&view=diff
==
--- cfe/branches/release_39/test/SemaCXX/cxx0x-defaulted-functions.cpp 
(original)
+++ cfe/branches/release_39/test/SemaCXX/cxx0x-defaulted-functions.cpp Mon Nov 
14 19:05:08 2016
@@ -208,3 +208,38 @@ int fn() {
   t = true;
 }
 }
+
+namespace dependent_classes {
+template 
+struct conditional;
+
+template 
+struct conditional { typedef X type; };
+
+template 
+struct conditional { typedef Y type; };
+
+template struct X {
+  X();
+
+  // B == false triggers error for = default.
+  using T = typename conditional::type;
+  X(T) = default;  // expected-error {{only special member functions}}
+
+  // Either value of B creates a constructor that can be default
+  using U = typename conditional::type;
+  X(U) = default;
+};
+
+X x1;
+X x2; // expected-note {{in instantiation}}
+
+template 
+class E {
+  explicit E(const int &) = default;
+};
+
+template 
+E::E(const int&) {}  // expected-error {{definition of explicitly 
defaulted function}}
+
+}


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r286923 - Merging rr285370:

2016-11-14 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Mon Nov 14 19:16:26 2016
New Revision: 286923

URL: http://llvm.org/viewvc/llvm-project?rev=286923&view=rev
Log:
Merging rr285370:

r285370 | rtrieu | 2016-10-27 17:15:24 -0700 (Thu, 27 Oct 2016) | 10 lines

Fix a crash on invalid code.

The diagnostic was attempting to access the QualType of a TypeDecl by calling
TypeDecl::getTypeForDecl.  However, the Type pointer stored there is lazily
loaded by functions in ASTContext.  In most cases, the pointer is loaded and
this does not cause a problem.  However, when more that 50 or so unknown types
are seen beforehand, this causes the Type to not be loaded, passing a null
Type to the diagnostics, leading to the crash.  Using
ASTContext::getTypeDeclType will give a proper QualType for all cases.



Modified:
cfe/branches/release_39/lib/Sema/SemaCXXScopeSpec.cpp
cfe/branches/release_39/test/SemaCXX/nested-name-spec.cpp

Modified: cfe/branches/release_39/lib/Sema/SemaCXXScopeSpec.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/Sema/SemaCXXScopeSpec.cpp?rev=286923&r1=286922&r2=286923&view=diff
==
--- cfe/branches/release_39/lib/Sema/SemaCXXScopeSpec.cpp (original)
+++ cfe/branches/release_39/lib/Sema/SemaCXXScopeSpec.cpp Mon Nov 14 19:16:26 
2016
@@ -806,7 +806,7 @@ bool Sema::BuildCXXNestedNameSpecifier(S
   if (!Found.empty()) {
 if (TypeDecl *TD = Found.getAsSingle())
   Diag(IdentifierLoc, diag::err_expected_class_or_namespace)
-  << QualType(TD->getTypeForDecl(), 0) << getLangOpts().CPlusPlus;
+  << Context.getTypeDeclType(TD) << getLangOpts().CPlusPlus;
 else {
   Diag(IdentifierLoc, diag::err_expected_class_or_namespace)
   << &Identifier << getLangOpts().CPlusPlus;

Modified: cfe/branches/release_39/test/SemaCXX/nested-name-spec.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/test/SemaCXX/nested-name-spec.cpp?rev=286923&r1=286922&r2=286923&view=diff
==
--- cfe/branches/release_39/test/SemaCXX/nested-name-spec.cpp (original)
+++ cfe/branches/release_39/test/SemaCXX/nested-name-spec.cpp Mon Nov 14 
19:16:26 2016
@@ -435,3 +435,21 @@ namespace PR16951 {
  // expected-error{{no member named 'X2' in 
'PR16951::enumerator_2'}}
 
 }
+
+namespace PR30619 {
+c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d;
+// expected-error@-1 16{{unknown type name 'c'}}
+c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d;
+// expected-error@-1 16{{unknown type name 'c'}}
+c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d;
+// expected-error@-1 16{{unknown type name 'c'}}
+c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d; c d;
+// expected-error@-1 16{{unknown type name 'c'}}
+namespace A {
+class B {
+  typedef C D; // expected-error{{unknown type name 'C'}}
+  A::D::F;
+  // expected-error@-1{{'D' (aka 'int') is not a class, namespace, or 
enumeration}}
+};
+}
+}


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits