eugenis created this revision.
eugenis added reviewers: chandlerc, rsmith.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
Currently always_inline definitions are emitted as (in most cases) an
available_externally llvm function with an
eugenis added inline comments.
Comment at: lib/CodeGen/CGCXX.cpp:41
@@ +40,3 @@
+ if (getCodeGenOpts().SanitizeMemoryUseAfterDtor Layout.getFieldCount() 0
+ HasTrivialDestructorBody(Context, D-getParent(), D-getParent())) {
+return true;
I'm not
eugenis added inline comments.
Comment at: lib/CodeGen/CGClass.cpp:1578
@@ +1577,3 @@
+if (CGF.CGM.FieldHasTrivialDestructorBody(Context, Field) ||
+Field-getType()-isPointerType()) {
+ // Start sanitizing at this field
Why do you
eugenis removed rL LLVM as the repository for this revision.
eugenis updated this revision to Diff 32330.
http://reviews.llvm.org/D12087
Files:
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/ItaniumCXXABI.cpp
eugenis marked an inline comment as done.
Comment at: lib/CodeGen/CodeGenModule.cpp:447-448
@@ +446,4 @@
+if (C !isallvm::GlobalValue(C)) {
+ C-handleOperandChange(GV, IndirectReplacement, U);
+ continue;
+}
Good catch.
eugenis updated this revision to Diff 32341.
http://reviews.llvm.org/D12087
Files:
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGOpenMPRuntime.cpp
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/ItaniumCXXABI.cpp
eugenis added inline comments.
Comment at: lib/CodeGen/CodeGenModule.cpp:513
@@ +512,3 @@
+void CodeGenModule::RewriteAlwaysInlineFunctions() {
+ for (llvm::Function *Fn : AlwaysInlineFunctions)
+RewriteAlwaysInlineFunction(Fn);
Done. Should I make it a
Author: eugenis
Date: Thu Aug 20 16:47:16 2015
New Revision: 245619
URL: http://llvm.org/viewvc/llvm-project?rev=245619view=rev
Log:
Revert r245344.
That change is causing strange test failures on Fedora 22 (PR24503),
and it does not have any effect with Gold linker anyway (PR15823,
Author: eugenis
Date: Wed Oct 21 15:20:03 2015
New Revision: 250941
URL: http://llvm.org/viewvc/llvm-project?rev=250941=rev
Log:
MemorySanitizer does not require PIE.
Since r249754 MemorySanitizer should work equally well for PIE and
non-PIE executables.
Beware, with this change
eugenis added a comment.
ping
We will need this when libc++ is bumped to v2. There are no plans to do this
AFAIK but the ABI version macros are in so it is possible and clang should be
ready.
http://reviews.llvm.org/D12382
___
cfe-commits mailing
eugenis added a comment.
In http://reviews.llvm.org/D13925#276626, @majnemer wrote:
> No diagnostic is issued for the following C test case:
>
> int x __attribute__((internal_linkage));
> int x __attribute__((common));
> int *f() { return }
Thanks for noticing! Added missing attribute
eugenis updated this revision to Diff 38679.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
lib/Sema/Sema.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclAttr.cpp
Author: eugenis
Date: Wed Oct 21 15:47:00 2015
New Revision: 250944
URL: http://llvm.org/viewvc/llvm-project?rev=250944=rev
Log:
Revert "MemorySanitizer does not require PIE."
It actually does require PIE on some targets.
Modified:
cfe/trunk/lib/Driver/SanitizerArgs.cpp
Author: eugenis
Date: Wed Oct 21 16:28:49 2015
New Revision: 250949
URL: http://llvm.org/viewvc/llvm-project?rev=250949=rev
Log:
MemorySanitizer does not require PIE.
Since r249754 MemorySanitizer should work equally well for PIE and
non-PIE executables on Linux/x86_64.
Beware, with this change
eugenis added a comment.
What kind of confirmation are you looking for?
I've compiled the following code with 2 versions of : one as in this
review, another the same but with __block_size initializers moved back into
respective classes. Resulting object files are identical.
#include
int
eugenis updated this revision to Diff 38071.
eugenis marked 2 inline comments as done.
eugenis added a comment.
This new version supports __attribute__((internal_linkage)) on classes and even
namespaces!
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
eugenis added inline comments.
Comment at: lib/Sema/SemaDeclAttr.cpp:1580-1585
@@ -1577,3 +1579,8 @@
+
+ if (InternalLinkageAttr *Internal = D->getAttr()) {
+S.Diag(Attr.getRange().getBegin(), diag::warn_attribute_ignored)
+<< Attr.getName();
+
eugenis closed this revision.
eugenis added a comment.
r252648.
Thanks everyone for the very detailed review!
Repository:
rL LLVM
http://reviews.llvm.org/D13925
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
Author: eugenis
Date: Tue Nov 10 15:28:44 2015
New Revision: 252648
URL: http://llvm.org/viewvc/llvm-project?rev=252648=rev
Log:
Implement __attribute__((internal_linkage)).
The attrubite is applicable to functions and variables and changes
the linkage of the subject to internal.
This is the
eugenis updated this revision to Diff 39751.
eugenis added a comment.
Rebase.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
eugenis updated this revision to Diff 39750.
eugenis added a comment.
Applied the same change to . No idea how I missed it.
Repository:
rL LLVM
http://reviews.llvm.org/D14409
Files:
include/istream
include/ostream
include/sstream
include/streambuf
Index: include/streambuf
eugenis closed this revision.
eugenis added a comment.
r252514
Repository:
rL LLVM
http://reviews.llvm.org/D12382
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
eugenis added a comment.
Richard, are you OK with this?
Repository:
rL LLVM
http://reviews.llvm.org/D13925
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: eugenis
Date: Mon Nov 9 15:10:54 2015
New Revision: 252514
URL: http://llvm.org/viewvc/llvm-project?rev=252514=rev
Log:
Extend linux header search to find libc++ headers in c++/vN for any N.
Added:
cfe/trunk/test/Driver/Inputs/basic_linux_libcxxv2_tree/
eugenis added a comment.
is an interesting case.
There are no cases of visibility attribute present on an out-of-class
definition but missing on an in-class declaration, so nothing needs to be done
for a switch to internal_linkage.
Setting hidden visibility on an "extern template" method is
eugenis updated this revision to Diff 39249.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
lib/Sema/SemaDecl.cpp
eugenis updated this revision to Diff 39245.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
lib/Sema/SemaDecl.cpp
eugenis added a comment.
How do I check if a Var is a local variable?
Comment at: test/CodeGenCXX/attribute_internal_linkage.cpp:35-36
@@ +34,4 @@
+__attribute__((internal_linkage)) void A::f3() {
+}
+
+// Forward declaration w/o an attribute.
OK, done. Still
eugenis added inline comments.
Comment at: test/SemaCXX/internal_linkage.cpp:23
@@ +22,3 @@
+
+__attribute__((internal_linkage)) void A::f4() {} //
expected-error{{'internal_linkage' attribute does not appear on the first
declaration of 'f4'}}
+
Btw, this
eugenis added a comment.
Hm, the current implementation allows all of the following:
void f(int a [[clang::internal_linkage]]) { // 1
int b [[clang::internal_linkage]]; // 2
static int c [[clang::internal_linkage]]; // 3
}
I'll fix (1). Is it OK to allow (2) and (3)? The attribute has
Author: eugenis
Date: Fri Nov 6 19:22:13 2015
New Revision: 252385
URL: http://llvm.org/viewvc/llvm-project?rev=252385=rev
Log:
Cleanup: move visibility/linkage attributes to the first declaration.
This change moves visibility attributes from out-of-class method
definitions to in-class
eugenis closed this revision.
eugenis added a comment.
Confirmed and landed as r252385.
Thanks for the quick response!
Repository:
rL LLVM
http://reviews.llvm.org/D14410
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis added inline comments.
Comment at: lib/Sema/SemaDeclAttr.cpp:3407
@@ +3406,3 @@
+ : ExpectedVariableOrFunction);
+D->dropAttr();
+ }
aaron.ballman wrote:
> Why is this dropping AlwaysInlineAttr instead of
eugenis updated this revision to Diff 39389.
eugenis marked an inline comment as done.
eugenis added a comment.
Added the new warning to a -W group.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
eugenis added inline comments.
Comment at: lib/AST/Decl.cpp:635-641
@@ -634,2 +634,9 @@
assert(!isa(D) && "Didn't expect a FieldDecl!");
+ for (const DeclContext *DC = D->getDeclContext();
+ !isa(DC); DC = DC->getParent()) {
+const NamespaceDecl *ND =
eugenis updated this revision to Diff 39135.
eugenis marked 2 inline comments as done.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
lib/Sema/SemaDecl.cpp
eugenis updated this revision to Diff 39124.
eugenis marked 5 inline comments as done.
eugenis added a comment.
Disabled the new attribute on namespaces.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
eugenis updated this revision to Diff 39128.
eugenis added a comment.
One more test for forward declarations.
Repository:
rL LLVM
http://reviews.llvm.org/D13925
Files:
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Sema/Sema.h
lib/AST/Decl.cpp
eugenis added a comment.
Hi Eric,
could you please clarify what exactly you are looking for here?
Repository:
rL LLVM
http://reviews.llvm.org/D10677
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis created this revision.
eugenis added reviewers: EricWF, mclow.lists.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
Use __attribute__((internal_linkage)) instead of always_inline and
visibility("hidden") when it is available.
eugenis created this revision.
eugenis added reviewers: EricWF, mclow.lists.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
This change moves visibility attributes from out-of-class method definitions to
in-class declaration.
This is needed for
eugenis created this revision.
eugenis added reviewers: mclow.lists, EricWF.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
No point in pretending that these methods are hidden - they are
actually exported from libc++.so. Extern template
eugenis marked an inline comment as done.
eugenis added a comment.
Repository:
rL LLVM
http://reviews.llvm.org/D12382
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
eugenis set the repository for this revision to rL LLVM.
eugenis updated this revision to Diff 39587.
Repository:
rL LLVM
http://reviews.llvm.org/D12382
Files:
lib/Driver/ToolChains.cpp
test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin/.keep
eugenis added a comment.
This is a mechanical change, and AFAIR I checked that no bits of libc++.so are
affected.
The same mechanical change in streambuf/istream/ostream (the stuff that's parts
of extern templates) breaks libc++ because of
https://llvm.org/bugs/show_bug.cgi?id=25427, that's
Author: eugenis
Date: Fri Nov 6 16:02:29 2015
New Revision: 252350
URL: http://llvm.org/viewvc/llvm-project?rev=252350=rev
Log:
Allow deque to handle incomplete types.
Allow deque and deque::iterator instantiation with incomplete element
type. This is an ABI breaking change, and it is only
eugenis closed this revision.
eugenis added a comment.
Thanks!
Landed as r252350.
Repository:
rL LLVM
http://reviews.llvm.org/D10677
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis added a comment.
Yes. I'm just using libc++.so as a (incomplete) test that this is actually NFC.
It did catch the extern template issue.
Repository:
rL LLVM
http://reviews.llvm.org/D14410
___
cfe-commits mailing list
eugenis updated this revision to Diff 37795.
eugenis marked 3 inline comments as done.
Repository:
rL LLVM
http://reviews.llvm.org/D10677
Files:
include/__config
include/deque
test/libcxx/containers/sequences/deque/incomplete.pass.cpp
Index:
eugenis added a comment.
In http://reviews.llvm.org/D10677#266595, @EricWF wrote:
> For the most part this looks good. I'm a touch concerned though about the
> changes to the static initialization. The initializer is moved from within
> the function body to outside it. Could you have somebody
eugenis created this revision.
eugenis added a reviewer: rsmith.
eugenis added subscribers: cfe-commits, EricWF, rnk.
eugenis set the repository for this revision to rL LLVM.
The attrubite is applicable to functions and variables and changes the linkage
of the subject to internal.
Following the
eugenis added a comment.
I've wrote down my understanding of the problem in ABIVersioning.rst.
AFAIK, Howard added the attribute so he might know more about it.
Why does windows need this attributes in the unstable abi build?
Hidden visibility and always_inline work together for the same goal,
eugenis updated this revision to Diff 37427.
Repository:
rL LLVM
http://reviews.llvm.org/D13713
Files:
docs/DesignDocs/ABIVersioning.rst
include/__config
Index: include/__config
===
--- include/__config
+++ include/__config
eugenis added inline comments.
Comment at: lib/Sema/SemaDeclAttr.cpp:1580-1585
@@ -1577,3 +1579,8 @@
+
+ if (InternalLinkageAttr *Internal = D->getAttr()) {
+S.Diag(Attr.getRange().getBegin(), diag::warn_attribute_ignored)
+<< Attr.getName();
+
eugenis created this revision.
eugenis added a reviewer: echristo.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
Herald added subscribers: srhines, danalbert, tberghammer.
Depends on http://reviews.llvm.org/D13571
Repository:
rL LLVM
eugenis closed this revision.
eugenis added a comment.
r249751
Repository:
rL LLVM
http://reviews.llvm.org/D13572
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: eugenis
Date: Thu Oct 8 16:21:44 2015
New Revision: 249751
URL: http://llvm.org/viewvc/llvm-project?rev=249751=rev
Log:
Use Triple.isAndroid() where possible.
Modified:
cfe/trunk/lib/Basic/Targets.cpp
cfe/trunk/lib/Driver/SanitizerArgs.cpp
cfe/trunk/lib/Driver/ToolChain.cpp
eugenis added a comment.
Looks great!
Comment at: include/CMakeLists.txt:31
@@ +30,3 @@
+# by prepending __config_site to the current __config header.
+# TODO(EricWF) Is it portable to use "cat" and ">>"?
+add_custom_command(OUTPUT
eugenis set the repository for this revision to rL LLVM.
eugenis updated this revision to Diff 37015.
eugenis added a comment.
Rebased on http://reviews.llvm.org/D13407
Repository:
rL LLVM
http://reviews.llvm.org/D11740
Files:
CMakeLists.txt
cmake/Modules/HandleLibcxxFlags.cmake
eugenis added a comment.
Thanks. I'll upload the rebase patch on Monday.
Comment at: include/CMakeLists.txt:38
@@ +37,3 @@
+ COMMAND ${UNIX_CAT} ${LIBCXX_SOURCE_DIR}/include/__config >>
${LIBCXX_BINARY_DIR}/__generated_config
+ DEPENDS
eugenis created this revision.
eugenis added reviewers: mclow.lists, EricWF.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
Libcxxabi tests are built against non-installed libc++ headers, and they need
to know the ABI version libc++ is
eugenis closed this revision.
eugenis added a comment.
Landed as r250254, thanks for the review!
Repository:
rL LLVM
http://reviews.llvm.org/D11740
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis added inline comments.
Comment at: test/libcxx/test/config.py:444
@@ -442,1 +443,3 @@
+def configure_compile_flags_abi_version(self):
+abi_version = self.get_lit_conf('abi_version', '').strip()
EricWF wrote:
> Please allow abi_version to be
Author: eugenis
Date: Tue Oct 13 18:48:28 2015
New Revision: 250254
URL: http://llvm.org/viewvc/llvm-project?rev=250254=rev
Log:
ABI versioning macros for libc++.
C++ macros and CMake options that specify the default ABI version of
the library, and can be overridden to pick up new ABI-changing
eugenis updated this revision to Diff 37293.
eugenis marked an inline comment as done.
Repository:
rL LLVM
http://reviews.llvm.org/D11740
Files:
CMakeLists.txt
cmake/Modules/HandleLibcxxFlags.cmake
docs/Abi.rst
docs/BuildingLibcxx.rst
include/__config
include/__config_site.in
eugenis added inline comments.
Comment at: include/__config:252
@@ -246,1 +251,3 @@
+defined(_LIBCPP_ALTERNATE_STRING_LAYOUT)
+#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
#endif
EricWF wrote:
> I think he's demonstrating the patches functionality and
eugenis updated this revision to Diff 37299.
Repository:
rL LLVM
http://reviews.llvm.org/D11740
Files:
CMakeLists.txt
cmake/Modules/HandleLibcxxFlags.cmake
docs/Abi.rst
docs/BuildingLibcxx.rst
include/__config
include/__config_site.in
include/string
lib/CMakeLists.txt
eugenis created this revision.
eugenis added reviewers: mclow.lists, EricWF.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
Herald added a subscriber: aemerson.
ABI stability is not an issue when building for unstable ABI.
Other than that,
eugenis set the repository for this revision to rL LLVM.
eugenis updated this revision to Diff 37310.
eugenis added a comment.
Using new ABI version macros to enable this feature in unstable or future ABI
only.
PTAL.
Repository:
rL LLVM
http://reviews.llvm.org/D10677
Files:
eugenis removed rL LLVM as the repository for this revision.
eugenis updated this revision to Diff 33246.
eugenis added a comment.
Introduced cmake options for specifying the desired ABI version.
ABI version affects library soname and include path (include/c++/vN).
Baked ABI version into the
eugenis created this revision.
eugenis added reviewers: mclow.lists, EricWF, rsmith.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
This goes with the ABI versioning support in libc++ in
http://reviews.llvm.org/D11740
Repository:
rL LLVM
eugenis marked 2 inline comments as done.
eugenis added a comment.
http://reviews.llvm.org/D12382
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
eugenis removed rL LLVM as the repository for this revision.
eugenis updated this revision to Diff 33259.
http://reviews.llvm.org/D12382
Files:
lib/Driver/ToolChains.cpp
test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin/.keep
eugenis added a comment.
Richard, would you mind taking a look a this change?
http://reviews.llvm.org/D12022
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
eugenis added a comment.
How long is a major and minor ABI version supported?
We don't want to bump major version too often, and we want to support both +1
and -1 of the current major version, along with all possible minor versions.
When is the major and minor ABI version bumped?
See
eugenis created this revision.
eugenis added reviewers: EricWF, mclow.lists.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
With http://reviews.llvm.org/D11740, libc++ headers can not be used from the
libc++ source directly, because they include
eugenis marked 2 inline comments as done.
eugenis added a comment.
Repository:
rL LLVM
http://reviews.llvm.org/D12087
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
eugenis added inline comments.
Comment at: lib/CodeGen/CodeGenModule.cpp:469-470
@@ +468,4 @@
+ llvm::LLVMContext = getModule().getContext();
+ llvm::Function *StubFn =
+ llvm::Function::Create(FT, Fn->getLinkage(), Name, ());
+ assert(StubFn->getName() == Name && "name
eugenis added a subscriber: eugenis.
eugenis added a comment.
This would greatly simplify the abi versioning change in
http://reviews.llvm.org/D11740. Thanks for working on this!
Comment at: include/CMakeLists.txt:24
@@ +23,3 @@
+ -P
eugenis added inline comments.
Comment at: lib/CodeGen/CGClass.cpp:1671
@@ -1670,1 +1670,3 @@
+ ASTContext = CGF.getContext();
+ // Poison vtable and vtable ptr if they exist for this class.
You are poisoning the vtable pointer in the base
eugenis added inline comments.
Comment at: lib/CodeGen/CGCXX.cpp:45
@@ +44,3 @@
+ // destructors.
+ if (getCodeGenOpts().SanitizeMemoryUseAfterDtor)
+return true;
This simply suppresses all dtor alias under UseAfterDtor, effectively disabling
the second
eugenis added a comment.
LGTM but please wait for Richard's answer
Comment at: lib/CodeGen/CGClass.cpp:1551
@@ +1550,3 @@
+ // Prevent the current stack frame from disappearing from the stack
trace.
+ CGF.CurFn->addFnAttr("disable-tail-calls", "true");
+
eugenis accepted this revision.
eugenis added a comment.
This revision is now accepted and ready to land.
I'd call the test sanitize-dtor-trivial.cpp
http://reviews.llvm.org/D12616
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis added inline comments.
Comment at: test/CodeGenCXX/sanitize-dtor-generated.cpp:5
@@ +4,3 @@
+
+// TODO Success pending on resolution of issue 596
+// XFAIL: *
Add the link to the issue.
Comment at:
eugenis added a comment.
In http://reviews.llvm.org/D12087#239243, @yaron.keren wrote:
> In CGCXX.cpp, may be fixable after this commit:
>
> // FIXME: An extern template instantiation will create functions with
> // linkage "AvailableExternally". In libc++, some classes also define
> //
eugenis added inline comments.
Comment at: lib/CodeGen/CGCXX.cpp:31
@@ -30,1 +30,3 @@
+static bool HasTrivialField(CodeGenModule CGM, const CXXDestructorDecl *D) {
+ for (const auto *Field : D-getParent()-fields())
I think this should be called
eugenis added a comment.
I'm going to commit this tomorrow unless someone speaks up.
Repository:
rL LLVM
http://reviews.llvm.org/D12087
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
Author: eugenis
Date: Fri Sep 11 16:10:12 2015
New Revision: 247473
URL: http://llvm.org/viewvc/llvm-project?rev=247473=rev
Log:
Specify target triple in alwaysinline tests.
This should fix the tests on Windows (failing due to mangling differencies).
Modified:
eugenis added a comment.
second attempt in r247494
Repository:
rL LLVM
http://reviews.llvm.org/D12087
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: eugenis
Date: Fri Sep 11 20:07:37 2015
New Revision: 247494
URL: http://llvm.org/viewvc/llvm-project?rev=247494=rev
Log:
Always_inline codegen rewrite.
Current implementation may end up emitting an undefined reference for
an "inline __attribute__((always_inline))" function by generating
eugenis added inline comments.
Comment at: lib/CodeGen/CodeGenModule.cpp:543
@@ +542,3 @@
+ if (Fn->isUsedByMetadata())
+llvm::ValueAsMetadata::handleRAUW(Fn, StubFn);
+}
As the comment says.
W/o this, the debug info for .alwaysinline instructions is
eugenis updated this revision to Diff 34610.
eugenis added a comment.
Fixed the debug info problem.
Repository:
rL LLVM
http://reviews.llvm.org/D12087
Files:
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGOpenMPRuntime.cpp
lib/CodeGen/CodeGenModule.cpp
eugenis added a comment.
Hi Eric, have you had a chance to take another look at this? It is blocking
http://reviews.llvm.org/D11740.
http://reviews.llvm.org/D11963
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
eugenis added a comment.
FYI, I ran some tests and did not find any regressions and also confirmed that
this change fixes the problem PR23256 was minimized from.
Thanks for working on this!
http://reviews.llvm.org/D12502
___
cfe-commits mailing
eugenis added inline comments.
Comment at: lib/CodeGen/CGClass.cpp:1685
@@ +1684,3 @@
+// function
+Poison(CGF, VTablePtr, PoisonSize);
+ }
Did you mean to move this chunk to the other cleanup class?
Is there a test that would fail if vptr is
eugenis added a comment.
Thanks, committed as r248518 with a test.
Repository:
rL LLVM
http://reviews.llvm.org/D13122
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: eugenis
Date: Thu Sep 24 12:22:46 2015
New Revision: 248518
URL: http://llvm.org/viewvc/llvm-project?rev=248518=rev
Log:
Enable SafeStack on all Linux platforms.
Modified:
cfe/trunk/lib/Driver/ToolChains.cpp
cfe/trunk/test/Driver/fsanitize.c
Modified:
eugenis created this revision.
eugenis added reviewers: samsonov, pcc.
eugenis added a subscriber: cfe-commits.
eugenis set the repository for this revision to rL LLVM.
I don't see the point in limiting it to x86/x86_64 in the driver. It is only
slightly less broken on x86 than on other
eugenis added a comment.
There is a bit of a problem with testing libc++. If the library is built for
the non-default ABI, we can not build tests against headers in libc++ source.
And the headers in the build directory are only updated when cmake is re-run. I
guess the latter can be fixed by
eugenis added a comment.
Better -fsanitize-merge-checks, and it should apply to non-trap checks as well
(i.e. SIGILL address should uniquely correspond to the failure source location).
Repository:
rL LLVM
http://reviews.llvm.org/D15208
___
1 - 100 of 262 matches
Mail list logo