bitshares / bitshares-core

BitShares Blockchain node and command-line wallet
https://bitshares.github.io/
Other
1.17k stars 647 forks source link

Compiler warning: objects of type `fc::optional` may be used uninitialized #2484

Open abitmore opened 3 years ago

abitmore commented 3 years ago

Build Error Description

Also reported in https://github.com/bitshares/bitshares-core/issues/2348.

/bitshares-core/libraries/protocol/fee_schedule_calc.cpp: In member function ‘graphene::protocol::calc_fee_visitor::result_type graphene::protocol::calc_fee_visitor::operator()(const OpType&) const [with OpType = graphene::protocol::asset_create_operation; graphene::protocol::calc_fee_visitor::result_type = long unsigned int]’:
/bitshares-core/libraries/protocol/fee_schedule_calc.cpp:70:26: warning: ‘sub_asset_creation_fee’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       optional<uint64_t> sub_asset_creation_fee;
                          ^
In file included from /bitshares-core/tests/tests/operation_tests.cpp:43:0:
/bitshares-core/tests/tests/../common/database_fixture.hpp: In member function ‘void operation_tests::update_uia::test_method()’:
/bitshares-core/tests/tests/../common/database_fixture.hpp:148:9: warning: ‘bak.fc::optional<graphene::db::object_id<1, 2> >::_value[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    auto bak = op.field; \
         ^~~
/bitshares-core/tests/tests/../common/database_fixture.hpp:148:9: note: ‘bak.fc::optional<graphene::db::object_id<1, 2> >::_value[0]’ was declared here
    auto bak = op.field; \
         ^
/bitshares-core/tests/tests/../common/database_fixture.hpp:148:9: note: in definition of macro ‘REQUIRE_THROW_WITH_VALUE_2’
    auto bak = op.field; \
         ^~~
/bitshares-core/tests/tests/operation_tests.cpp:1758:7: note: in expansion of macro ‘REQUIRE_THROW_WITH_VALUE’
       REQUIRE_THROW_WITH_VALUE(op, new_issuer, test.issuer);
       ^
In file included from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/variant_object.hpp:2:0,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/log/log_message.hpp:8,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/log/logger.hpp:5,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/exception/exception.hpp:6,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/safe.hpp:2,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/io/raw_fwd.hpp:7,
                 from /home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/io/enum_type.hpp:3,
                 from /home/ubuntu/bitshares-core-dev/libraries/protocol/include/graphene/protocol/types.hpp:42,
                 from /home/ubuntu/bitshares-core-dev/libraries/chain/include/graphene/chain/types.hpp:26,
                 from /home/ubuntu/bitshares-core-dev/libraries/chain/include/graphene/chain/account_object.hpp:26,
                 from /home/ubuntu/bitshares-core-dev/libraries/chain/market_evaluator.cpp:24:
/home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/variant.hpp: In member function ‘graphene::db::object_id_type graphene::chain::call_order_update_evaluator::do_apply(const graphene::protocol::call_order_update_operation&)’:
/home/ubuntu/bitshares-core-dev/libraries/fc/include/fc/variant.hpp:634:17: warning: ‘old_debt.fc::safe<long int>::value’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       to_variant( static_cast<T>(s.value), v, max_depth );
                 ^
/home/ubuntu/bitshares-core-dev/libraries/chain/market_evaluator.cpp:316:25: note: ‘old_debt.fc::safe<long int>::value’ was declared here
    optional<share_type> old_debt;
                         ^

Build Environment Details about the build environment, including the relevant required libraries. Much of this information can be found in the CMakeFiles/CMakeOutput.log.

CORE TEAM TASK LIST

abitmore commented 1 year ago

It looks like this is because we don't have a to_variant function for the optional class.

abitmore commented 1 year ago

Update: