[llvm-branch-commits] [cfe-tag] r286888 - Tagging checker-279.
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.
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:
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:
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:
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