Dave Bartolomeo
82e2816915
C++: Fix handling of std::va_list that is used as a function parameter
...
In the Unix ABI, `std::va_list` is defined as `typedef struct __va_list_tag { ... } va_list[1];`, which means that any `std::va_list` used as a function parameter decays to `struct __va_list_tag*`. Handling this actually made the QL code slightly cleaner. The only tricky bit is that we have to determine what type to use as the actual `va_list` type when loading, storing, or modifying a `std::va_list`. To do this, we look at the type of the argument to the `va_*` macro. A detailed QLDoc comment explains the details.
I added a test case for passing a `va_list` as an argument, and then manipulating that `va_list` in the callee.
2020-03-20 12:53:09 -04:00
..
2018-08-07 09:48:27 +01:00
2018-08-07 09:48:27 +01:00
2019-10-10 10:04:32 +01:00
2018-08-02 17:53:23 +01:00
2019-12-03 09:00:43 +00:00
2018-08-07 09:48:27 +01:00
2020-03-19 09:18:32 -04:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-10-18 12:36:42 +01:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2019-11-12 17:35:50 +00:00
2019-09-09 11:25:53 +02:00
2018-08-07 09:48:27 +01:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2019-12-13 17:06:05 -07:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-10-03 13:19:16 +02:00
2018-08-02 17:53:23 +01:00
2019-12-13 17:06:05 -07:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2020-02-23 20:53:49 +01:00
2019-11-19 11:30:59 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-05-20 15:08:28 +01:00
2020-01-29 13:11:50 +01:00
2018-08-02 17:53:23 +01:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2020-03-16 15:45:29 +00:00
2018-10-26 11:07:18 +01:00
2020-02-27 15:26:53 +00:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-11-28 17:51:20 +01:00
2018-09-23 16:23:52 -07:00
2019-09-09 11:25:53 +02:00
2019-10-03 11:48:03 +02:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2018-08-07 09:48:27 +01:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2019-11-13 14:07:33 +01:00
2019-09-17 17:38:54 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-12-16 13:38:36 +00:00
2019-09-09 11:25:53 +02:00
2019-05-02 11:16:21 +01:00
2019-09-09 11:25:53 +02:00
2019-10-15 14:47:32 +01:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2020-01-23 11:05:47 +00:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2020-03-20 12:53:09 -04:00
2020-03-03 01:30:18 +00:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2019-11-19 11:30:59 +01:00
2019-09-09 11:25:53 +02:00
2020-02-05 09:11:23 +00:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2019-12-13 17:06:05 -07:00
2020-01-29 13:11:50 +01:00
2020-03-03 14:45:04 +01:00
2018-08-02 17:53:23 +01:00
2019-09-09 11:25:53 +02:00
2019-09-23 16:04:59 +01:00
2020-01-29 13:11:50 +01:00
2019-11-07 14:08:25 +00:00
2020-01-20 15:00:09 +00:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-09-23 16:23:52 -07:00
2019-09-09 11:25:53 +02:00
2020-02-05 09:11:23 +00:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-12-13 17:06:05 -07:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2020-02-20 16:15:22 +00:00
2020-03-13 06:46:07 -04:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-08-02 17:53:23 +01:00
2018-08-02 17:53:23 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-24 11:28:57 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2018-09-19 10:26:11 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2020-01-29 13:11:50 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2020-03-13 06:46:07 -04:00
2020-03-03 01:30:18 +00:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2019-09-09 11:25:53 +02:00
2019-09-23 13:57:50 +01:00
2018-09-23 16:24:31 -07:00
2019-11-13 18:53:43 +00:00
2018-08-07 09:48:27 +01:00
2019-09-09 11:25:53 +02:00
2019-12-13 17:06:05 -07:00
2019-09-09 11:25:53 +02:00
2019-09-23 13:57:50 +01:00
2019-09-09 11:25:53 +02:00
2020-02-23 20:53:49 +01:00
2020-03-13 06:46:07 -04:00
2019-09-27 11:28:31 +01:00
2019-09-09 11:25:53 +02:00
2020-01-29 13:11:50 +01:00
2020-01-29 13:11:50 +01:00