0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-09 10:43:19 -05:00
bitcoin-bitcoin-core/src/util
fanquake 2a7c9984db
Merge bitcoin/bitcoin#25248: refactor: Add LIFETIMEBOUND / -Wdangling-gsl to Assert()
fa3ea81c3e refactor: Add LIFETIMEBOUND / -Wdangling-gsl to Assert() (MacroFake)

Pull request description:

  Currently compiles clean, but I think it may still be useful.

  Can be tested by adding an `&`:

  ```diff
  diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp
  index 5766fff92d..300c1ec60f 100644
  --- a/src/test/util_tests.cpp
  +++ b/src/test/util_tests.cpp
  @@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE(util_check)

       // Check -Wdangling-gsl does not trigger when copying the int. (It would
       // trigger on "const int&")
  -    const int nine{*Assert(std::optional<int>{9})};
  +    const int& nine{*Assert(std::optional<int>{9})};
       BOOST_CHECK_EQUAL(9, nine);
   }

  ```

  Output:
  ```
  test/util_tests.cpp:128:29: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl]
      const int& nine{*Assert(std::optional<int>{9})};
                              ^~~~~~~~~~~~~~~~~~~~~
  ./util/check.h:75:50: note: expanded from macro 'Assert'
  #define Assert(val) inline_assertion_check<true>(val, __FILE__, __LINE__, __func__, #val)
                                                   ^~~
  1 warning generated.

ACKs for top commit:
  jonatack:
    ACK fa3ea81c3e
  theuni:
    ACK fa3ea81c3e

Tree-SHA512: 17dea4d75f2ee2bf6e1b6a6f6d8f439711c777df0390574e8d8edb6ac9ee807a135341e4439050bd6a15ecc4097a1ba9a7ab15d27541ebf70a4e081fa6871877
2022-11-03 10:29:05 +00:00
..
asmap.cpp Merge bitcoin/bitcoin#25285: Add AutoFile without ser-type and ser-version and use it where possible 2022-07-20 09:32:11 +01:00
asmap.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
bip32.cpp Fix iwyu 2022-08-20 09:33:01 +02:00
bip32.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
bitdeque.h Add bitdeque, an std::deque<bool> analogue that does bit packing. 2022-08-23 11:34:10 -04:00
bytevectorhash.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
bytevectorhash.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
check.cpp util/check: stop using lambda for Assert/Assume 2022-03-30 23:09:13 +10:00
check.h refactor: Add LIFETIMEBOUND / -Wdangling-gsl to Assert() 2022-08-02 13:40:42 +02:00
epochguard.h util, refactor: Add UNIQUE_NAME helper macro 2022-02-16 14:59:20 +02:00
error.cpp Validate port options 2022-10-05 19:30:15 +02:00
error.h Validate port options 2022-10-05 19:30:15 +02:00
fastrange.h Add FastRange32 function and use it throughout the codebase 2022-01-07 13:37:47 -05:00
fees.cpp
fees.h
getuniquepath.cpp Disallow more unsafe string->path conversions allowed by path append operators 2022-04-21 12:01:00 -05:00
getuniquepath.h
golombrice.h [moveonly] Move MapIntoRange() to separate util/fastrange.h 2022-01-06 11:27:06 -05:00
hash_type.h move-only: Add util/hash_type 2021-05-11 10:38:18 +02:00
hasher.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
hasher.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
macros.h util, refactor: Add UNIQUE_NAME helper macro 2022-02-16 14:59:20 +02:00
message.cpp Fix iwyu 2022-08-20 09:33:01 +02:00
message.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
moneystr.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
moneystr.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
overflow.h util: Add SaturatingAdd helper 2022-02-21 14:32:53 +01:00
overloaded.h refactor: Make CWalletTx sync state type-safe 2021-11-15 09:11:44 -05:00
rbf.cpp
rbf.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
readwritefile.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
readwritefile.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
result.h refactor: Replace BResult with util::Result 2022-08-03 07:33:01 -04:00
serfloat.cpp Add platform-independent float encoder/decoder 2021-05-24 16:04:44 -07:00
serfloat.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
settings.cpp settings: Add update/getPersistent/isIgnored methods 2022-05-19 11:32:56 -04:00
settings.h settings: Add update/getPersistent/isIgnored methods 2022-05-19 11:32:56 -04:00
sock.cpp net: convert standalone SetSocketNonBlocking() to Sock::SetNonBlocking() 2022-07-20 16:26:24 +02:00
sock.h net: convert standalone SetSocketNonBlocking() to Sock::SetNonBlocking() 2022-07-20 16:26:24 +02:00
spanparsing.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
spanparsing.h Extend Split to work with multiple separators 2022-05-04 07:34:47 +02:00
strencodings.cpp Validate port value in SplitHostPort 2022-10-05 19:24:04 +02:00
strencodings.h Validate port value in SplitHostPort 2022-10-05 19:24:04 +02:00
string.cpp Fix issues when calling std::move(const&) 2022-08-20 09:32:53 +02:00
string.h Merge bitcoin/bitcoin#25872: Fix issues when calling std::move(const&) 2022-08-31 08:38:24 +01:00
syscall_sandbox.cpp Remove gui-only syscalls 2022-04-05 13:30:06 +02:00
syscall_sandbox.h init: Disable syscall sandbox in the bitcoin-qt process 2022-04-05 13:29:42 +02:00
syserror.cpp refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
syserror.h util: Replace non-threadsafe strerror 2022-04-28 10:24:06 +02:00
system.cpp Merge bitcoin/bitcoin#25727: util, config: error on startup if conf or reindex are set in config file 2022-10-21 16:39:44 +08:00
system.h kernel: move RunCommandParseJSON to its own file 2022-10-04 13:51:40 +00:00
thread.cpp refactor: use std::string for thread names 2022-09-13 19:07:39 +01:00
thread.h refactor: use std::string for thread names 2022-09-13 19:07:39 +01:00
threadnames.cpp refactor: add missing std:: includes to threadnames.cpp 2022-04-01 14:49:13 +01:00
threadnames.h
time.cpp refactor: move Boost datetime usage to wallet 2022-10-01 11:41:53 +01:00
time.h Merge bitcoin/bitcoin#26118: log: Use steady clock for bench logging 2022-10-10 12:00:34 +02:00
tokenpipe.cpp Guard #include <config/bitcoin-config.h> 2022-05-02 16:41:30 +02:00
tokenpipe.h
trace.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
translation.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00
types.h Add util/types.h with ALWAYS_FALSE template 2021-09-07 19:19:02 +02:00
ui_change_type.h
vector.h refactor: add most of src/util to iwyu 2022-07-08 11:06:01 +01:00