interface/wallet: get rid of missing initializer warnings #14774

pull kallewoof wants to merge 1 commits into bitcoin:master from kallewoof:suppwarn-empty-constructor changing 1 files +1 −0
  1. kallewoof commented at 4:16 AM on November 21, 2018: member

    Debian Jessie (PPC) gives me warnings, which go away with a default empty constructor in WalletTx:

    [...]
      CXX      libbitcoin_server_a-validationinterface.o
      AR       libbitcoin_server.a
      CXX      interfaces/libbitcoin_wallet_a-wallet.o
    interfaces/wallet.cpp: In member function ‘virtual interfaces::WalletTx interfaces::{anonymous}::WalletImpl::getWalletTx(const uint256&)’:
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::tx’ [-Wmissing-field-initializers]
             return {};
                     ^
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::txin_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_address’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_address_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::credit’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::debit’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::change’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::time’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::value_map’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:306:17: warning: missing initializer for member ‘interfaces::WalletTx::is_coinbase’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp: In member function ‘virtual interfaces::WalletTx interfaces::{anonymous}::WalletImpl::getWalletTxDetails(const uint256&, interfaces::WalletTxStatus&, interfaces::WalletOrderForm&, bool&, int&)’:
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::tx’ [-Wmissing-field-initializers]
             return {};
                     ^
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::txin_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_address’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::txout_address_is_mine’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::credit’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::debit’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::change’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::time’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::value_map’ [-Wmissing-field-initializers]
    interfaces/wallet.cpp:355:17: warning: missing initializer for member ‘interfaces::WalletTx::is_coinbase’ [-Wmissing-field-initializers]
      CXX      wallet/libbitcoin_wallet_a-coincontrol.o
    [...]
    
  2. interfaces: add empty constructor to WalletTx to suppress warnings about missing initializers 1c368c30a6
  3. fanquake added the label Wallet on Nov 21, 2018
  4. promag commented at 11:37 AM on November 22, 2018: member

    @kallewoof does it work if you replace return {}; with WalletTx(); instead?

  5. Empact commented at 3:11 PM on November 22, 2018: member

    I think this is fixed in GCC 5 and above, fyi: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750

  6. MarcoFalke added the label Refactoring on Nov 22, 2018
  7. kallewoof commented at 2:44 AM on November 26, 2018: member

    @promag

    @kallewoof does it work if you replace return {}; with WalletTx(); instead?

    Yes, that works. A one-line fix-all seems more convenient, though.

  8. MarcoFalke commented at 5:31 PM on November 26, 2018: member

    I thought we don't fix or work around false warnings of broken compilers?

  9. kallewoof commented at 5:51 AM on November 27, 2018: member

    @MarcoFalke It's the latest version on Debian Jessie, which seems to have long term support from the Debian people (i.e. it is not yet out of its life cycle).

    I'm neutral on abandoning it. I think we should abandon old Red Hat distros too and switch to C++14 already, while at it (slightly off topic, but still relevant).

    (Edit: should note that I specifically run this because it's the newest Debian which runs on a Big Endian PowerPC system, and I wanted to test bitcoin on Big Endian systems. Upgrading is not an option here.)

  10. kallewoof closed this on Dec 14, 2018

  11. kallewoof deleted the branch on Dec 14, 2018
  12. MarcoFalke locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 18:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me