Hello Todd Lipcon, Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/6693
to look at the new patch set (#4).
Change subject: Silence clang -Waddress-of-packed-member warning
......................................................................
Silence clang -Waddress-of-packed-member warning
macOS/clang 4.0 builds have become polluted with warnings like:
In file included from ../../src/kudu/tablet/deltamemstore.cc:22:
In file included from ../../src/kudu/tablet/deltafile.h:34:
In file included from ../../src/kudu/tablet/deltamemstore.h:33:
../../src/kudu/tablet/concurrent_btree.h:386:33: warning: taking address of
packed member 'version_' of class or structure
'kudu::tablet::btree::NodeBase<kudu::tablet::DMSTreeTraits>' may result in an
unaligned pointer value [-Waddress-of-packed-member]
VersionField::SetInserting(&version_);
^~~~~~~~
../../src/kudu/tablet/concurrent_btree.h:721:11: note: in instantiation of
member function
'kudu::tablet::btree::NodeBase<kudu::tablet::DMSTreeTraits>::SetInserting'
requested here
this->SetInserting();
^
../../src/kudu/tablet/concurrent_btree.h:707:12: note: in instantiation of
member function
'kudu::tablet::btree::LeafNode<kudu::tablet::DMSTreeTraits>::InsertNew'
requested here
return InsertNew(mut->idx(), mut->key(), val, mut->arena());
^
../../src/kudu/tablet/concurrent_btree.h:1316:19: note: in instantiation of
member function
'kudu::tablet::btree::LeafNode<kudu::tablet::DMSTreeTraits>::Insert' requested
here
switch (node->Insert(mutation, val)) {
^
../../src/kudu/tablet/concurrent_btree.h:869:19: note: in instantiation of
member function
'kudu::tablet::btree::CBTree<kudu::tablet::DMSTreeTraits>::Insert' requested
here
return tree_->Insert(this, val);
^
../../src/kudu/tablet/deltamemstore.cc:103:31: note: in instantiation of member
function
'kudu::tablet::btree::PreparedMutation<kudu::tablet::DMSTreeTraits>::Insert'
requested here
if (PREDICT_FALSE(!mutation.Insert(update.slice()))) {
This is because of clang's -Waddress-of-packed-member warning which has
been committed and reverted and committed again in the clang codebase.
Chromium also silenced this (multiple times), see:
https://bugs.chromium.org/p/chromium/issues/detail?id=637306
This patch makes clang ignore that warning, but if we just left it
at that older versions of clang would then complain about the unknown
warning, so this also makes clang ignore unknown warnings. The
alternative would be have clang ignore the warning only for
certain versions, but then we'd have to do that separaetly for macOS
and linux which seems more code to add and maintain.
Note that this warning can't be ignored locally, with pragmas, because
then GCC would spew warnings about unknown pragmas. Moreover the GCC
warnings themselves can't be ignored because of a long standing bug.
See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
Change-Id: I03518bcca43ea6c891a7f622972465c1ea87ce63
---
M CMakeLists.txt
1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/93/6693/4
--
To view, visit http://gerrit.cloudera.org:8080/6693
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I03518bcca43ea6c891a7f622972465c1ea87ce63
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>
Gerrit-Reviewer: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <[email protected]>