From 203c06da6dd4b5319a8c2938981c3de3660ede0f Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Mon, 9 Feb 2015 15:00:18 -0800 Subject: [PATCH] locally disable pragma warnings on gcc < 4.6 diagnostic push|pop are not present before 4.6, so each use gives a warning. Temporarily ignore these by disabling/reenabling -Wpragmas. Note that this means the other disabled warnings are not scoped on old gcc. I don't think this is worth fixing, since newer gcc will respect the scope and show us the warnings outside of it. Signed-off-by: Josh Durgin --- src/include/encoding.h | 2 ++ src/os/Transaction.cc | 4 ++++ src/osd/PG.cc | 4 ++++ src/test/librados/list.cc | 6 ++++++ src/test/librados/watch_notify.cc | 2 ++ src/test/multi_stress_watch.cc | 2 ++ src/test/system/st_rados_notify.cc | 2 ++ src/test/system/st_rados_watch.cc | 2 ++ src/test/test_stress_watch.cc | 2 ++ src/tools/ceph_objectstore_tool.cc | 2 ++ src/tools/scratchtoolpp.cc | 2 ++ 11 files changed, 30 insertions(+) diff --git a/src/include/encoding.h b/src/include/encoding.h index bd941656340f5..7b976f24b5788 100644 --- a/src/include/encoding.h +++ b/src/include/encoding.h @@ -306,6 +306,7 @@ inline void encode(const boost::optional &p, bufferlist &bl) encode(p.get(), bl); } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuninitialized" #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" @@ -321,6 +322,7 @@ inline void decode(boost::optional &p, bufferlist::iterator &bp) } } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" //triple tuple template diff --git a/src/os/Transaction.cc b/src/os/Transaction.cc index d219108fac113..fdbfa3bdb5f16 100644 --- a/src/os/Transaction.cc +++ b/src/os/Transaction.cc @@ -4,6 +4,7 @@ #include "ObjectStore.h" #include "common/Formatter.h" +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -504,6 +505,7 @@ void ObjectStore::Transaction::_build_actions_from_tbl() } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" void ObjectStore::Transaction::dump(ceph::Formatter *f) { @@ -932,6 +934,7 @@ void ObjectStore::Transaction::dump(ceph::Formatter *f) f->close_section(); } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -981,3 +984,4 @@ void ObjectStore::Transaction::generate_test_instances(list &snapcolls) } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" void PG::_upgrade_v7(ObjectStore *store, const interval_set &snapcolls) { @@ -2753,6 +2755,7 @@ void PG::write_info(ObjectStore::Transaction& t) dirty_big_info = false; } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -2843,6 +2846,7 @@ epoch_t PG::peek_map_epoch(ObjectStore *store, } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" void PG::write_if_dirty(ObjectStore::Transaction& t) { diff --git a/src/test/librados/list.cc b/src/test/librados/list.cc index 50d0d281882ae..0e6aa5b3b632d 100644 --- a/src/test/librados/list.cc +++ b/src/test/librados/list.cc @@ -34,6 +34,7 @@ TEST_F(LibRadosList, ListObjects) { rados_objects_list_close(ctx); } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -154,6 +155,7 @@ static void check_list(std::set& myset, rados_list_ctx_t& ctx) } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" TEST_F(LibRadosList, ListObjectsNS) { char buf[128]; @@ -207,6 +209,7 @@ TEST_F(LibRadosList, ListObjectsNS) { ASSERT_EQ(-EINVAL, rados_objects_list_open(ioctx, &ctx)); } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -474,6 +477,7 @@ TEST_F(LibRadosListECPP, ListObjectsEndIter) { } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" TEST_F(LibRadosListEC, ListObjectsNS) { char buf[128]; @@ -570,6 +574,7 @@ TEST_F(LibRadosListECPP, ListObjectsPPNS) { EXPECT_THROW(check_listpp(def, ioctx), std::runtime_error); } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -661,3 +666,4 @@ TEST_F(LibRadosListECPP, ListObjectsStartPP) { } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" diff --git a/src/test/librados/watch_notify.cc b/src/test/librados/watch_notify.cc index 80a69df295fce..9a55144632c53 100644 --- a/src/test/librados/watch_notify.cc +++ b/src/test/librados/watch_notify.cc @@ -98,6 +98,7 @@ public: // -- +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -215,6 +216,7 @@ TEST_F(LibRadosWatchNotifyECPP, WatchNotifyTimeout) { } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" // -- diff --git a/src/test/multi_stress_watch.cc b/src/test/multi_stress_watch.cc index aa02d6941dbb2..25f735558f5c3 100644 --- a/src/test/multi_stress_watch.cc +++ b/src/test/multi_stress_watch.cc @@ -29,6 +29,7 @@ public: } }; +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -67,6 +68,7 @@ test_loop(Rados &cluster, std::string pool_name, std::string obj_name) } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" void test_replicated(Rados &cluster, std::string pool_name, std::string obj_name) diff --git a/src/test/system/st_rados_notify.cc b/src/test/system/st_rados_notify.cc index b5fea3ecab27a..ecdf1c7c14972 100644 --- a/src/test/system/st_rados_notify.cc +++ b/src/test/system/st_rados_notify.cc @@ -38,6 +38,7 @@ StRadosNotify::~StRadosNotify() { } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -77,3 +78,4 @@ int StRadosNotify::run() } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" diff --git a/src/test/system/st_rados_watch.cc b/src/test/system/st_rados_watch.cc index 7f837f532b0eb..4909f37ae939b 100644 --- a/src/test/system/st_rados_watch.cc +++ b/src/test/system/st_rados_watch.cc @@ -47,6 +47,7 @@ StRadosWatch:: { } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -100,3 +101,4 @@ run() } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" diff --git a/src/test/test_stress_watch.cc b/src/test/test_stress_watch.cc index 168714bba28ac..1f9bed9be6ed7 100644 --- a/src/test/test_stress_watch.cc +++ b/src/test/test_stress_watch.cc @@ -35,6 +35,7 @@ public: } }; +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -122,3 +123,4 @@ TEST_P(WatchStress, Stress1) { } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 369a424034129..cf27e11f4f3df 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -727,6 +727,7 @@ int finish_remove_pgs(ObjectStore *store) return 0; } +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -766,6 +767,7 @@ int mark_pg_for_removal(ObjectStore *fs, spg_t pgid, ObjectStore::Transaction *t } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" int initiate_new_remove_pg(ObjectStore *store, spg_t r_pgid) { diff --git a/src/tools/scratchtoolpp.cc b/src/tools/scratchtoolpp.cc index 24dba3acfe220..f622d7a1eed83 100644 --- a/src/tools/scratchtoolpp.cc +++ b/src/tools/scratchtoolpp.cc @@ -23,6 +23,7 @@ using namespace librados; #include #include +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -317,3 +318,4 @@ int main(int argc, const char **argv) } #pragma GCC diagnostic pop +#pragma GCC diagnostic warning "-Wpragmas" -- 2.39.5