[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Zahira Ammarguellat via Phabricator via cfe-commits
zahiraam added a comment. Erich, The IsOrInheritsFromIUnknown function is needed. Wh Comment at: lib/Sema/SemaDeclCXX.cpp:2377 +/// \brief Tests if the __interface base is public. +static bool IsBasePublicInterface(const CXXRecordDecl *RD, + A

[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Zahira Ammarguellat via Phabricator via cfe-commits
zahiraam added a comment. MSVC and xmain compile this: struct __declspec(uuid("---C000-0046")) IUnknown {}; struct PageBase : public IUnknown {}; struct Page3 : public PageBase {}; struct Page4 : public PageBase {}; __interface PropertyPage : public Page4 {}; But MSVC does

[PATCH] D31140: [LLVMbugs] [Bug 18710] Only generate .ARM.exidx and .ARM.extab when needed in EHABI

2017-09-13 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added inline comments. Comment at: lib/Driver/ToolChains/BareMetal.cpp:61 +bool BareMetal::IsUnwindTablesDefault(const ArgList &Args) const { + return getDriver().CCCIsCXX(); +} This still seems weird. In most situations, I would expect you want the sa

[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment. Yeah, but __interface IF1 {}; __interface PP : IUnknown, IF1{}; __interface PP2 : PP, Page3, Page4{}; Base PP has siblings here. It seems the rule is even more complex then. https://reviews.llvm.org/D37308 ___ c

[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment. A bit more research based on a different implementation: First, there are TWO special types, not just IUnknown! There is also "IDispatch" with UUID: "00020400---c000-0046" A type is 'interface like' if: -it has a ZERO virtual inheritance bases -it ha

[PATCH] D33514: [WIP] Bug 32352 - Provide a way for OptimizationRemarkEmitter::allowExtraAnalysis to check if (specific) remarks are enabled

2017-09-13 Thread Adam Nemet via Phabricator via cfe-commits
anemet accepted this revision. anemet added a comment. Still looks good. Comment at: lib/IR/LLVMContext.cpp:332 +} \ No newline at end of file Has this version of the diff been clang-formatted? https://reviews.llvm.org/D33514 _

[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment. SO, the implementation would likely be (~2489): if (Class->isInterface() && (KnownBase->getAccessSpecifier() != TTK_public || !RD->isInterface() || !RD->isInterfaceLike()) { with "isInterfaceLike" testing what I outlined above. https://reviews.llvm.org/D37308

[PATCH] D37196: [Clang] Bug 32352 - Provide a way for OptimizationRemarkEmitter::allowExtraAnalysis to check if (specific) remarks are enabled

2017-09-13 Thread Adam Nemet via Phabricator via cfe-commits
anemet accepted this revision. anemet added a comment. This revision is now accepted and ready to land. LGTM. https://reviews.llvm.org/D37196 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-

[PATCH] D37302: [Headers] Define *_HAS_SUBNORM for FLT, DBL, LDBL

2017-09-13 Thread Pirama Arumuga Nainar via Phabricator via cfe-commits
pirama added a comment. Ping https://reviews.llvm.org/D37302 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libcxxabi] r313215 - Reland "When built with ASan, __cxa_throw calls __asan_handle_no_return"

2017-09-13 Thread Petr Hosek via cfe-commits
Author: phosek Date: Wed Sep 13 16:35:07 2017 New Revision: 313215 URL: http://llvm.org/viewvc/llvm-project?rev=313215&view=rev Log: Reland "When built with ASan, __cxa_throw calls __asan_handle_no_return" The ASan runtime on many systems intercepts cxa_throw just so it can call asan_handle_no_re

[PATCH] D37436: Initial implementation of C attributes (WG14 N2137)

2017-09-13 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. In https://reviews.llvm.org/D37436#869851, @hfinkel wrote: > A large fraction of the number of attributes we'll want to use are going to > fall into this category (because Clang doesn't have its own attributes, but > copied GCC's, for many things). I don't think we'll ge

[PATCH] D37089: [Sema] Error out early for tags defined inside an enumeration.

2017-09-13 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. I think this looks good, even without fixing the access control crash, this seems like a diagnostic improvement. Comment at: clang/test/Sema/enum.c:128 +// PR28903 +struct PR28903 { // expected-warning {{empty struct is a GNU extension}} + enum {

r313219 - [NFC] [Analyzer] Fix RST markup in documentation.

2017-09-13 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 13 17:04:56 2017 New Revision: 313219 URL: http://llvm.org/viewvc/llvm-project?rev=313219&view=rev Log: [NFC] [Analyzer] Fix RST markup in documentation. Modified: cfe/trunk/docs/analyzer/DebugChecks.rst Modified: cfe/trunk/docs/analyzer/DebugChecks.rst

[PATCH] D37302: [Headers] Define *_HAS_SUBNORM for FLT, DBL, LDBL

2017-09-13 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith accepted this revision. rsmith added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D37302 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-c

[PATCH] D37308: Interface class with uuid base record

2017-09-13 Thread Erich Keane via Phabricator via cfe-commits
erichkeane commandeered this revision. erichkeane edited reviewers, added: zahiraam; removed: erichkeane. erichkeane added a comment. @zahiraam: quickly commendeering, since I have an implementation that I think better explains my discovery than my words. Feel free to commandeer it back later (

[PATCH] D37308: Fix the __interface inheritence rules to work better with IUnknown and IDispatch

2017-09-13 Thread Erich Keane via Phabricator via cfe-commits
erichkeane updated this revision to Diff 115153. erichkeane retitled this revision from "Interface class with uuid base record" to "Fix the __interface inheritence rules to work better with IUnknown and IDispatch". erichkeane edited the summary of this revision. erichkeane added a comment. Herald

[PATCH] D36806: Switch to cantFail(), since it does the same assertion.

2017-09-13 Thread Stephen Hines via Phabricator via cfe-commits
srhines added a comment. Ping https://reviews.llvm.org/D36806 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37035: Implement __builtin_LINE() et. al. to support source location capture.

2017-09-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 115161. EricWF marked an inline comment as done. EricWF added a comment. - Reimplement without rewriting the AST and instead during the substitution during constant expression evaluation and code gen. I still haven't implemented Richards suggestion to reduce

[PATCH] D37035: Implement __builtin_LINE() et. al. to support source location capture.

2017-09-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/SemaCXX/loc2.cpp:1 +// RUN: %clang_cc1 -std=c++1z -fcxx-exceptions -fexceptions -verify %s +// expected-no-diagnostics Didn't mean to include this file. Comment at: test/SemaCXX/test.cpp:1 +struct

[PATCH] D37035: Implement __builtin_LINE() et. al. to support source location capture.

2017-09-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: lib/AST/Expr.cpp:1940 false, false), -InitExprs(C, initExprs.size()), -LBraceLoc(lbraceloc), RBraceLoc(rbraceloc), AltForm(nullptr, true) -{ + InitExprs(C, initExprs.size()), LBraceLoc(lbraceloc), + RBraceLoc

[PATCH] D37035: Implement __builtin_LINE() et. al. to support source location capture.

2017-09-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 115162. EricWF added a comment. - Remove accidentally committed test files. - Attempt to remove incidental whitespace changes. https://reviews.llvm.org/D37035 Files: docs/LanguageExtensions.rst include/clang/AST/Decl.h include/clang/AST/Expr.h includ

[PATCH] D37538: [libc++] Remove problematic ADL in container implementations.

2017-09-13 Thread David L. Jones via Phabricator via cfe-commits
dlj marked 2 inline comments as done. dlj added inline comments. Comment at: include/deque:1167-1168 allocator_type& __a = __alloc(); -for (iterator __i = begin(), __e = end(); __i != __e; ++__i) -__alloc_traits::destroy(__a, _VSTD::addressof(*__i)); +for (it

[PATCH] D37538: [libc++] Remove problematic ADL in container implementations.

2017-09-13 Thread David L. Jones via Phabricator via cfe-commits
dlj updated this revision to Diff 115164. dlj added a comment. - Remove deque from the test for now. https://reviews.llvm.org/D37538 Files: include/__split_buffer include/deque include/memory test/std/containers/containers.general/construct_destruct.pass.cpp Index: test/std/containers/

[PATCH] D37538: [libc++] Remove problematic ADL in container implementations.

2017-09-13 Thread David L. Jones via Phabricator via cfe-commits
dlj updated this revision to Diff 115165. dlj added a comment. - Remove deque from the test for now. https://reviews.llvm.org/D37538 Files: include/__split_buffer include/memory test/std/containers/containers.general/construct_destruct.pass.cpp Index: test/std/containers/containers.gener

<    1   2