Artem Dergachev
7d4694547a
[analyzer] Escape pointers stored into top-level parameters with destructors.
...
Writing stuff into an argument variable is usually equivalent to writing stuff
to a local variable: it will have no effect outside of the function.
There's an important exception from this rule: if the argument variable has
a non-trivial destructor, the destructor would be invoked on
the parent stack frame, exposing contents of the otherwise dead
argument variable to the caller.
If such argument is the last place where a pointer is stored before the function
exits and the function is the one we've started our analysis from (i.e., we have
no caller context for it), we currently diagnose a leak. This is incorrect
because the destructor of the argument still has access to the pointer.
The destructor may deallocate the pointer or even pass it further.
Treat writes into such argument regions as "escapes" instead, suppressing
spurious memory leak reports but not messing with dead symbol removal.
Differential Revision: https://reviews.llvm.org/D60112
llvm-svn: 358321
2019-04-13 02:01:45 +00:00
..
2018-12-13 01:30:47 +00:00
2019-03-08 16:00:42 +00:00
2019-03-29 22:57:49 +00:00
2017-03-03 18:02:02 +00:00
2018-05-11 20:38:39 +00:00
2018-10-03 20:46:50 +00:00
2019-01-26 20:06:54 +00:00
2019-04-05 20:18:53 +00:00
2018-04-06 15:14:32 +00:00
2018-04-25 21:51:26 +00:00
2018-06-06 06:25:51 +00:00
2018-03-06 12:29:09 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2018-04-06 15:14:32 +00:00
2018-08-13 23:12:43 +00:00
2019-01-26 21:41:50 +00:00
2019-01-10 17:44:04 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-04-03 13:15:09 +00:00
2018-02-21 16:06:56 +00:00
2017-12-21 18:43:02 +00:00
2018-08-29 20:29:17 +00:00
2019-03-15 00:22:59 +00:00
2017-03-03 18:02:02 +00:00
2018-10-20 22:49:23 +00:00
2018-08-29 20:29:17 +00:00
2018-06-28 00:18:52 +00:00
2018-05-16 22:47:05 +00:00
2017-03-03 18:02:02 +00:00
2018-07-16 13:14:46 +00:00
2017-10-30 10:09:55 +00:00
2017-10-30 09:01:48 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2018-02-10 01:55:23 +00:00
2017-07-12 21:43:42 +00:00
2018-03-06 12:29:09 +00:00
2018-07-19 21:50:03 +00:00
2019-03-18 19:23:45 +00:00
2018-08-29 20:29:17 +00:00
2017-10-30 12:16:07 +00:00
2017-10-30 12:02:23 +00:00
2015-11-06 14:52:46 +00:00
2019-04-03 01:53:40 +00:00
2018-05-16 00:29:13 +00:00
2019-04-03 18:21:16 +00:00
2017-03-07 19:20:48 +00:00
2017-03-03 18:02:02 +00:00
2018-12-22 02:06:51 +00:00
2018-12-22 02:06:51 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-12-15 02:06:13 +00:00
2017-11-21 11:27:47 +00:00
2019-03-21 00:15:07 +00:00
2018-07-31 20:45:53 +00:00
2019-01-18 23:05:07 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-01-30 23:48:37 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-02-11 22:54:27 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2019-01-10 18:15:44 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2019-03-28 13:05:59 +00:00
2018-11-16 01:00:55 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2018-02-08 22:24:38 +00:00
2018-11-02 15:48:10 +00:00
2018-07-30 23:44:37 +00:00
2017-03-03 18:02:02 +00:00
2019-02-08 23:59:52 +00:00
2018-08-29 20:29:17 +00:00
2019-01-10 17:44:04 +00:00
2018-07-04 14:12:58 +00:00
2019-01-10 17:44:04 +00:00
2019-01-28 21:55:33 +00:00
2019-01-10 17:44:04 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2012-07-18 04:57:57 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2018-09-14 09:13:36 +00:00
2018-08-07 12:55:26 +00:00
2018-08-07 12:55:26 +00:00
2018-11-18 11:34:10 +00:00
2019-02-02 14:50:04 +00:00
2019-03-08 16:00:42 +00:00
2019-04-03 18:21:16 +00:00
2018-01-18 00:53:50 +00:00
2018-01-18 00:53:50 +00:00
2018-04-06 15:14:32 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-12-12 18:11:36 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-09-22 10:16:33 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-12-15 15:44:05 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-05-04 14:13:14 +00:00
2018-12-17 12:07:57 +00:00
2017-03-03 18:02:02 +00:00
2018-11-30 02:17:18 +00:00
2018-12-03 22:23:21 +00:00
2018-04-06 15:14:32 +00:00
2017-03-03 18:02:02 +00:00
2017-06-12 17:59:50 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2018-08-02 22:31:03 +00:00
2018-11-24 12:24:27 +00:00
2017-07-11 00:30:14 +00:00
2017-03-03 18:02:02 +00:00
2017-10-04 15:59:40 +00:00
2017-03-09 00:01:10 +00:00
2018-04-11 06:21:12 +00:00
2017-03-03 18:02:02 +00:00
2018-02-08 22:24:38 +00:00
2018-12-22 02:06:51 +00:00
2017-03-03 18:02:02 +00:00
2019-01-26 21:41:50 +00:00
2019-01-10 17:44:04 +00:00
2018-08-29 20:29:17 +00:00
2018-07-16 20:32:57 +00:00
2019-01-10 18:15:44 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2019-02-07 00:30:20 +00:00
2017-04-26 05:33:14 +00:00
2018-08-29 20:29:17 +00:00
2018-05-31 17:22:38 +00:00
2017-08-03 18:12:22 +00:00
2017-08-03 18:12:22 +00:00
2017-08-03 18:12:22 +00:00
2017-08-03 18:12:22 +00:00
2017-08-03 18:12:22 +00:00
2017-08-15 19:54:04 +00:00
2017-03-03 18:02:02 +00:00
2018-02-27 22:05:55 +00:00
2018-06-28 00:42:11 +00:00
2018-05-29 14:14:22 +00:00
2018-05-29 14:14:22 +00:00
2019-03-26 00:36:53 +00:00
2018-02-10 02:18:04 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-01-10 18:15:44 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2018-11-02 16:02:10 +00:00
2018-12-21 01:11:21 +00:00
2018-12-21 01:11:21 +00:00
2018-09-10 09:07:47 +00:00
2018-12-04 10:27:27 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2018-11-30 03:27:50 +00:00
2017-03-03 18:02:02 +00:00
2018-09-11 18:45:15 +00:00
2017-03-03 18:02:02 +00:00
2018-08-10 18:28:04 +00:00
2017-03-03 18:02:02 +00:00
2018-03-01 18:53:13 +00:00
2018-08-29 20:29:17 +00:00
2018-07-31 19:46:14 +00:00
2019-01-10 18:15:44 +00:00
2018-03-31 01:20:06 +00:00
2018-12-16 23:44:06 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-01-20 21:19:56 +00:00
2018-11-02 15:48:10 +00:00
2018-04-06 15:14:32 +00:00
2019-03-29 22:43:34 +00:00
2018-11-30 03:27:50 +00:00
2018-06-06 06:25:51 +00:00
2018-08-07 23:13:28 +00:00
2018-08-29 20:29:17 +00:00
2018-06-12 22:22:35 +00:00
2018-08-29 20:29:17 +00:00
2017-08-19 11:19:16 +00:00
2017-03-03 18:02:02 +00:00
2019-01-26 20:06:54 +00:00
2018-01-22 07:44:38 +00:00
2018-02-08 23:28:29 +00:00
2018-09-21 20:36:41 +00:00
2017-03-03 18:02:02 +00:00
2017-06-27 11:14:39 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-09-11 18:45:15 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-04-03 18:21:16 +00:00
2019-04-13 02:01:45 +00:00
2017-03-08 15:22:24 +00:00
2018-04-19 23:24:32 +00:00
2017-03-03 18:02:02 +00:00
2018-12-17 12:07:57 +00:00
2017-03-03 18:02:02 +00:00
2017-07-25 09:25:10 +00:00
2017-07-25 09:44:02 +00:00
2018-10-03 22:48:00 +00:00
2017-03-03 18:02:02 +00:00
2013-12-13 05:58:51 +00:00
2017-03-03 18:02:02 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2019-03-29 23:56:53 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-04-06 15:14:32 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2017-03-08 15:22:24 +00:00
2019-03-13 13:55:11 +00:00
2018-01-24 21:24:10 +00:00
2018-09-11 18:45:15 +00:00
2018-08-29 20:29:17 +00:00
2018-12-15 02:09:02 +00:00
2018-03-09 01:47:24 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2016-06-13 03:22:41 +00:00
2018-10-15 17:53:18 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2018-01-18 00:10:21 +00:00
2018-01-24 20:32:26 +00:00
2018-01-24 20:32:26 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2018-02-27 20:54:40 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2018-03-21 00:49:47 +00:00
2019-01-26 20:06:54 +00:00
2018-11-01 00:43:35 +00:00
2018-01-24 21:24:10 +00:00
2019-01-10 18:15:44 +00:00
2018-11-01 00:43:35 +00:00
2017-03-03 18:02:02 +00:00
2019-01-26 20:06:54 +00:00
2017-03-03 18:02:02 +00:00
2018-01-18 00:44:41 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-04-05 20:18:53 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-10-13 00:51:41 +00:00
2017-03-03 18:02:02 +00:00
2018-03-14 23:50:18 +00:00
2017-03-03 18:02:02 +00:00
2018-02-27 19:28:52 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-04-24 20:55:07 +00:00
2018-06-26 21:12:08 +00:00
2018-08-29 20:29:17 +00:00
2019-01-10 18:15:44 +00:00
2019-03-18 19:23:45 +00:00
2017-10-15 20:13:17 +00:00
2017-01-25 10:21:45 +00:00
2017-03-03 18:02:02 +00:00
2018-12-03 21:04:30 +00:00
2017-03-03 18:02:02 +00:00
2019-01-10 18:15:44 +00:00
2017-03-03 18:02:02 +00:00
2018-12-03 21:04:30 +00:00
2018-12-14 22:41:18 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-03-02 21:34:24 +00:00
2017-03-03 18:02:02 +00:00
2019-02-01 23:06:44 +00:00
2017-03-03 18:02:02 +00:00
2017-10-05 08:43:32 +00:00
2017-10-13 20:54:56 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-04-06 15:14:32 +00:00
2019-01-10 18:15:57 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-09-14 08:58:21 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-02-10 00:55:49 +00:00
2017-03-03 16:58:53 +00:00
2017-03-03 18:02:02 +00:00
2019-01-29 19:29:07 +00:00
2019-01-29 19:29:07 +00:00
2017-03-03 18:02:02 +00:00
2019-01-29 19:29:59 +00:00
2019-02-10 20:20:26 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-03-08 16:00:42 +00:00
2017-03-03 18:02:02 +00:00
2019-03-08 16:00:42 +00:00
2017-03-03 18:02:02 +00:00
2018-10-30 01:20:37 +00:00
2017-03-03 18:02:02 +00:00
2018-05-25 13:18:38 +00:00
2018-05-25 13:18:38 +00:00
2019-03-14 16:10:29 +00:00
2019-03-14 13:38:16 +00:00
2019-01-10 18:15:44 +00:00
2019-01-10 18:15:44 +00:00
2019-01-10 18:15:44 +00:00
2018-09-07 21:58:24 +00:00
2017-10-10 11:01:49 +00:00
2018-12-20 19:36:06 +00:00
2017-03-03 18:02:02 +00:00
2019-03-18 19:23:45 +00:00
2018-07-17 01:39:25 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2013-12-08 18:06:52 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2018-07-23 10:53:02 +00:00
2019-02-15 12:33:42 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-01-18 22:52:13 +00:00
2017-03-03 18:02:02 +00:00
2017-05-29 14:51:39 +00:00
2018-08-29 20:29:17 +00:00
2017-09-25 19:32:33 +00:00
2019-03-07 13:01:17 +00:00
2019-03-13 19:21:11 +00:00
2017-03-03 18:02:02 +00:00
2017-07-12 21:43:42 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2018-06-13 18:32:19 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2018-02-27 00:05:04 +00:00
2017-03-03 18:02:02 +00:00
2019-01-10 18:15:57 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-11-30 03:27:50 +00:00
2017-08-17 04:19:07 +00:00
2019-01-10 18:15:57 +00:00
2017-03-03 18:02:02 +00:00
2018-04-19 23:00:22 +00:00
2019-01-30 02:11:04 +00:00
2019-03-15 00:26:17 +00:00
2019-01-10 18:15:57 +00:00
2017-03-03 18:02:02 +00:00
2018-02-02 02:19:43 +00:00
2018-09-28 18:44:09 +00:00
2017-03-03 18:02:02 +00:00
2019-02-14 12:00:34 +00:00
2018-11-30 03:27:50 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-11-30 03:27:50 +00:00
2017-03-03 18:02:02 +00:00
2018-07-23 21:21:22 +00:00
2018-07-23 21:21:22 +00:00
2017-03-03 18:02:02 +00:00
2017-12-12 02:59:09 +00:00
2017-12-12 02:59:09 +00:00
2018-07-23 21:21:22 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-10-02 20:50:40 +00:00
2018-10-02 20:50:40 +00:00
2018-10-02 20:50:40 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-11-07 10:51:15 +00:00
2019-03-18 19:23:45 +00:00
2018-12-19 21:51:59 +00:00
2018-03-07 22:20:35 +00:00
2017-03-03 18:02:02 +00:00
2018-04-23 16:38:29 +00:00
2018-12-22 02:06:51 +00:00
2017-03-03 18:02:02 +00:00
2018-11-30 10:37:44 +00:00
2018-08-29 20:29:17 +00:00
2019-02-06 23:56:43 +00:00
2019-01-18 00:08:56 +00:00
2018-05-02 12:11:22 +00:00
2019-03-29 22:49:30 +00:00
2019-04-03 18:21:16 +00:00
2019-04-03 18:21:16 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-07-27 17:13:18 +00:00
2018-08-29 20:29:17 +00:00
2018-08-29 20:29:17 +00:00
2018-06-28 00:11:42 +00:00
2018-12-19 23:14:06 +00:00
2018-08-15 00:33:55 +00:00
2018-08-29 20:29:17 +00:00
2017-03-03 18:02:02 +00:00
2015-06-26 17:42:58 +00:00
2017-03-03 18:02:02 +00:00
2015-06-26 17:42:58 +00:00
2017-03-03 18:02:02 +00:00
2019-01-26 20:06:54 +00:00
2017-03-03 18:02:02 +00:00
2018-04-15 10:34:06 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2018-10-04 00:07:45 +00:00
2018-03-24 01:53:12 +00:00
2019-03-08 16:00:42 +00:00
2018-12-03 11:28:17 +00:00
2017-11-30 09:18:35 +00:00
2018-08-22 23:17:25 +00:00
2017-03-08 15:22:24 +00:00
2017-03-03 18:02:02 +00:00
2013-09-12 18:49:10 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 22:48:50 +00:00
2018-08-29 22:48:50 +00:00
2019-03-16 13:47:55 +00:00
2017-03-03 18:02:02 +00:00
2019-01-18 23:05:07 +00:00
2017-03-03 18:02:02 +00:00
2017-03-03 18:02:02 +00:00
2019-01-10 18:15:44 +00:00
2018-02-13 21:31:47 +00:00
2017-04-04 19:52:25 +00:00
2017-03-03 18:02:02 +00:00
2019-03-08 16:00:42 +00:00
2017-03-13 12:48:26 +00:00
2017-03-13 12:48:26 +00:00
2019-02-17 19:51:42 +00:00
2017-03-07 16:04:23 +00:00
2017-03-03 18:02:02 +00:00
2017-12-05 21:19:59 +00:00
2017-03-03 18:02:02 +00:00
2018-01-24 20:59:40 +00:00
2017-08-28 08:44:43 +00:00
2017-03-03 18:02:02 +00:00
2018-08-29 20:29:17 +00:00
2018-02-26 22:14:16 +00:00
2018-06-28 22:08:44 +00:00