Alexey Samsonov
8e1162c71d
Implement nonnull-attribute sanitizer
...
Summary:
This patch implements a new UBSan check, which verifies
that function arguments declared to be nonnull with __attribute__((nonnull))
are actually nonnull in runtime.
To implement this check, we pass FunctionDecl to CodeGenFunction::EmitCallArgs
(where applicable) and if function declaration has nonnull attribute specified
for a certain formal parameter, we compare the corresponding RValue to null as
soon as it's calculated.
Test Plan: regression test suite
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits, rnk
Differential Revision: http://reviews.llvm.org/D5082
llvm-svn: 217389
2014-09-08 17:22:45 +00:00
..
2014-03-11 04:37:49 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-08-29 10:17:52 +00:00
2013-05-08 20:58:01 +00:00
2014-08-14 15:14:51 +00:00
2013-08-15 06:47:53 +00:00
2013-09-04 04:12:25 +00:00
2013-10-26 15:43:55 +00:00
2013-09-04 04:12:25 +00:00
2014-08-27 16:22:26 +00:00
2013-10-08 19:08:54 +00:00
2013-08-15 06:47:53 +00:00
2013-07-04 14:36:22 +00:00
2013-09-04 04:12:25 +00:00
2013-08-15 06:47:53 +00:00
2013-07-04 15:22:16 +00:00
2013-08-15 06:47:53 +00:00
2013-09-04 04:12:25 +00:00
2013-12-04 03:41:15 +00:00
2014-08-14 15:14:51 +00:00
2014-01-14 06:19:29 +00:00
2013-09-04 04:12:25 +00:00
2013-04-10 21:10:39 +00:00
2013-09-04 04:12:25 +00:00
2014-02-21 03:14:07 +00:00
2013-09-04 04:12:25 +00:00
2013-09-04 04:12:25 +00:00
2014-05-24 12:51:25 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-07-23 12:57:31 +00:00
2014-07-23 12:57:31 +00:00
2014-08-29 01:01:32 +00:00
2013-08-15 06:47:53 +00:00
2014-07-30 22:52:16 +00:00
2013-08-15 06:47:53 +00:00
2013-08-08 19:53:46 +00:00
2013-08-07 18:08:19 +00:00
2014-06-30 01:34:09 +00:00
2013-08-15 06:47:53 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-05-24 12:52:07 +00:00
2014-05-24 12:52:07 +00:00
2014-05-24 12:52:07 +00:00
2014-04-16 15:33:48 +00:00
2014-05-24 12:52:07 +00:00
2014-06-17 13:11:27 +00:00
2014-04-16 15:33:48 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-04-16 15:33:48 +00:00
2014-04-16 15:33:48 +00:00
2014-04-16 15:33:48 +00:00
2014-05-24 12:52:07 +00:00
2014-06-18 08:37:28 +00:00
2014-05-24 12:52:07 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-05-24 12:52:07 +00:00
2014-05-24 12:52:07 +00:00
2014-06-18 08:37:28 +00:00
2014-06-18 08:37:28 +00:00
2014-04-16 15:33:48 +00:00
2014-08-27 16:31:57 +00:00
2014-03-29 15:09:45 +00:00
2014-04-21 01:23:39 +00:00
2014-08-29 10:17:52 +00:00
2014-07-23 12:57:31 +00:00
2014-06-18 08:37:28 +00:00
2014-07-23 12:57:31 +00:00
2014-06-18 08:37:28 +00:00
2014-05-24 12:52:07 +00:00
2014-05-24 12:52:07 +00:00
2014-08-28 09:44:07 +00:00
2014-08-26 18:43:31 +00:00
2014-07-18 09:09:31 +00:00
2014-03-12 14:02:50 +00:00
2014-06-08 21:28:54 +00:00
2013-09-16 18:07:35 +00:00
2013-09-16 18:07:35 +00:00
2014-07-09 09:24:43 +00:00
2014-07-09 09:24:43 +00:00
2014-07-09 09:24:43 +00:00
2014-07-03 09:28:12 +00:00
2014-03-12 14:02:50 +00:00
2013-08-15 06:47:53 +00:00
2013-05-14 12:45:47 +00:00
2014-01-29 09:43:07 +00:00
2013-09-18 10:07:09 +00:00
2014-08-27 10:43:15 +00:00
2013-10-01 14:34:25 +00:00
2014-06-30 01:34:09 +00:00
2014-07-05 20:10:05 +00:00
2014-09-05 13:50:34 +00:00
2014-09-05 13:50:34 +00:00
2013-10-04 14:42:00 +00:00
2014-02-19 10:37:13 +00:00
2013-05-15 02:40:04 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-08-02 00:35:50 +00:00
2014-03-29 15:09:45 +00:00
2013-07-03 15:32:48 +00:00
2014-07-14 16:27:53 +00:00
2013-08-15 06:47:53 +00:00
2014-03-29 15:09:45 +00:00
2014-08-29 07:27:49 +00:00
2014-08-29 07:27:49 +00:00
2014-06-13 14:24:59 +00:00
2013-08-15 06:47:53 +00:00
2014-06-13 14:24:59 +00:00
2013-08-15 06:47:53 +00:00
2013-05-24 20:18:15 +00:00
2013-09-04 04:12:25 +00:00
2014-09-04 22:16:33 +00:00
2014-05-23 19:07:25 +00:00
2013-08-15 06:47:53 +00:00
2014-07-30 22:52:16 +00:00
2013-09-04 04:12:25 +00:00
2014-09-06 10:30:51 +00:00
2014-08-14 17:17:57 +00:00
2014-05-13 02:37:02 +00:00
2013-06-17 19:42:49 +00:00
2014-05-29 20:47:29 +00:00
2014-06-13 19:43:04 +00:00
2014-02-21 23:49:50 +00:00
2013-09-04 04:12:25 +00:00
2013-10-11 20:48:38 +00:00
2013-08-15 06:47:53 +00:00
2014-08-14 09:37:50 +00:00
2013-08-15 06:47:53 +00:00
2014-03-29 15:09:45 +00:00
2014-05-28 20:26:57 +00:00
2013-12-04 03:41:15 +00:00
2013-12-13 17:47:34 +00:00
2013-12-13 19:44:40 +00:00
2013-10-22 22:51:04 +00:00
2013-11-22 10:20:43 +00:00
2014-09-08 01:12:55 +00:00
2014-09-08 01:12:55 +00:00
2014-07-11 23:54:29 +00:00
2014-08-13 19:18:20 +00:00
2014-07-02 12:56:02 +00:00
2014-07-02 17:41:27 +00:00
2014-08-26 12:48:06 +00:00
2013-12-10 11:37:00 +00:00
2013-11-13 22:58:53 +00:00
2013-06-18 20:40:40 +00:00
2013-12-04 03:41:02 +00:00
2013-09-04 04:12:25 +00:00
2014-08-04 23:21:26 +00:00
2013-12-04 03:41:15 +00:00
2014-09-06 10:30:51 +00:00
2014-09-03 15:24:29 +00:00
2014-05-31 00:22:12 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-07-31 06:31:19 +00:00
2014-03-24 21:43:36 +00:00
2013-08-15 06:47:53 +00:00
2014-06-30 09:14:10 +00:00
2014-07-04 04:06:11 +00:00
2014-09-08 17:22:45 +00:00
2014-01-21 01:50:12 +00:00
2013-08-12 12:51:05 +00:00
2014-03-26 15:36:05 +00:00
2014-01-13 19:48:13 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-07-16 20:19:04 +00:00
2013-11-08 01:09:22 +00:00
2013-08-15 06:47:53 +00:00
2013-07-04 15:04:25 +00:00
2013-09-18 03:29:45 +00:00
2014-01-14 19:35:09 +00:00
2014-01-21 02:57:56 +00:00
2013-08-26 23:19:37 +00:00
2013-06-18 00:27:36 +00:00
2014-08-08 17:10:14 +00:00
2014-02-20 14:09:04 +00:00
2014-05-06 18:35:21 +00:00
2013-08-01 20:57:40 +00:00
2014-05-14 00:29:00 +00:00
2013-08-30 08:53:09 +00:00
2014-01-21 18:42:27 +00:00
2014-01-30 01:01:36 +00:00
2014-05-19 23:40:06 +00:00
2013-09-18 22:08:57 +00:00
2013-08-15 06:47:53 +00:00
2014-06-19 16:10:21 +00:00
2014-08-23 01:48:50 +00:00
2014-04-18 01:05:25 +00:00
2014-05-25 10:34:16 +00:00
2014-08-29 17:36:11 +00:00
2014-06-13 03:35:37 +00:00
2014-07-07 00:12:30 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-08-19 17:17:40 +00:00
2013-09-02 20:32:37 +00:00
2013-08-15 06:47:53 +00:00
2013-12-04 03:41:15 +00:00
2013-08-15 06:47:53 +00:00
2014-05-20 17:12:51 +00:00
2014-07-17 10:51:31 +00:00
2014-01-14 19:35:09 +00:00
2013-08-15 06:47:53 +00:00
2014-04-16 08:06:33 +00:00
2014-04-08 22:30:47 +00:00
2013-08-15 06:47:53 +00:00
2013-04-02 13:38:42 +00:00
2014-05-20 19:20:23 +00:00
2013-09-04 04:12:25 +00:00
2013-08-15 06:47:53 +00:00
2014-07-03 19:30:33 +00:00
2014-07-29 21:20:12 +00:00
2014-03-29 14:19:55 +00:00
2014-04-02 23:17:29 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-04-08 21:31:01 +00:00
2014-01-22 20:11:01 +00:00
2014-01-14 19:26:03 +00:00
2013-08-12 12:51:05 +00:00
2013-09-04 04:12:25 +00:00
2013-09-04 04:12:25 +00:00
2014-03-06 01:37:10 +00:00
2013-03-23 06:43:35 +00:00
2014-01-15 09:08:07 +00:00
2014-07-29 06:53:14 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-06-17 20:00:15 +00:00
2014-01-15 21:42:41 +00:00
2013-10-16 01:40:34 +00:00
2014-01-14 19:35:09 +00:00
2013-10-11 20:48:38 +00:00
2014-03-30 13:00:06 +00:00
2013-08-15 06:47:53 +00:00
2013-10-09 18:10:25 +00:00
2014-09-04 15:05:39 +00:00
2013-11-11 22:10:46 +00:00
2013-08-15 06:47:53 +00:00
2013-11-12 12:56:01 +00:00
2013-07-14 06:18:38 +00:00
2014-07-09 13:43:19 +00:00
2013-11-12 12:56:01 +00:00
2014-04-24 16:05:26 +00:00
2014-04-24 16:05:26 +00:00
2014-09-04 15:05:39 +00:00
2014-09-04 13:28:14 +00:00
2013-12-04 03:41:33 +00:00
2014-04-25 20:41:38 +00:00
2014-07-17 11:38:22 +00:00
2013-08-27 23:08:25 +00:00
2013-08-30 04:39:01 +00:00
2014-02-13 00:50:08 +00:00
2014-01-29 07:53:44 +00:00
2014-08-05 00:01:13 +00:00
2014-08-26 21:10:47 +00:00
2013-05-20 14:02:37 +00:00
2014-07-06 05:26:54 +00:00
2014-08-01 20:23:29 +00:00
2014-09-04 20:04:38 +00:00
2014-08-01 20:23:29 +00:00
2014-06-18 21:48:44 +00:00
2013-07-25 18:42:13 +00:00
2014-06-05 16:52:20 +00:00
2014-05-24 12:52:07 +00:00
2013-09-04 04:12:25 +00:00
2014-02-22 16:59:24 +00:00
2014-01-15 19:07:16 +00:00
2013-07-23 01:09:17 +00:00
2014-08-28 00:53:20 +00:00
2013-11-20 20:35:34 +00:00
2013-03-30 14:38:26 +00:00
2013-06-21 22:39:56 +00:00
2013-10-07 19:00:18 +00:00
2014-01-14 19:35:09 +00:00
2013-07-12 22:30:03 +00:00
2013-08-15 06:47:53 +00:00
2014-02-21 23:49:50 +00:00
2013-08-15 06:47:53 +00:00
2014-02-21 23:49:50 +00:00
2014-06-30 01:34:09 +00:00
2013-12-16 19:53:26 +00:00
2014-07-21 00:56:36 +00:00
2014-06-30 01:34:09 +00:00
2013-12-04 03:41:15 +00:00
2014-07-28 13:17:52 +00:00
2013-12-04 03:41:15 +00:00
2014-03-02 18:24:18 +00:00
2013-12-04 03:41:15 +00:00
2013-12-04 03:41:15 +00:00
2013-12-04 03:41:15 +00:00
2013-12-04 03:41:15 +00:00
2014-07-21 00:56:36 +00:00
2014-07-21 00:56:36 +00:00
2014-06-20 16:37:40 +00:00
2014-08-24 03:47:06 +00:00
2013-10-11 20:19:00 +00:00
2013-09-04 04:12:25 +00:00
2013-09-04 04:12:25 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-12-13 16:11:31 +00:00
2014-05-28 10:53:06 +00:00
2013-07-04 15:22:16 +00:00
2014-02-21 23:49:50 +00:00
2013-07-04 14:51:11 +00:00
2014-01-23 15:05:00 +00:00
2013-07-03 01:43:57 +00:00
2014-06-19 16:10:21 +00:00
2014-06-19 16:10:21 +00:00
2014-07-23 17:59:07 +00:00
2014-02-21 23:49:50 +00:00
2014-02-21 23:49:50 +00:00
2013-08-12 12:51:05 +00:00
2014-07-24 18:09:38 +00:00
2013-08-15 06:47:53 +00:00
2014-07-30 22:52:16 +00:00
2014-04-07 19:27:58 +00:00
2013-03-26 17:52:08 +00:00
2013-03-29 05:17:55 +00:00
2013-08-15 06:47:53 +00:00
2013-03-29 05:14:06 +00:00
2014-07-02 16:54:41 +00:00
2014-04-08 22:49:38 +00:00
2013-09-19 14:07:14 +00:00
2014-01-16 16:43:19 +00:00
2014-02-24 19:24:15 +00:00
2014-05-19 22:14:34 +00:00
2014-01-14 06:19:26 +00:00
2014-01-14 06:19:26 +00:00
2014-06-09 09:09:19 +00:00
2014-06-09 09:09:19 +00:00
2014-02-11 01:35:14 +00:00
2013-07-23 00:25:18 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-03-24 21:43:36 +00:00
2013-08-12 12:51:05 +00:00
2013-09-16 18:07:35 +00:00
2013-09-16 18:07:35 +00:00
2014-02-21 23:49:50 +00:00
2013-09-04 04:12:25 +00:00
2013-08-15 06:47:53 +00:00
2013-12-04 09:59:57 +00:00
2014-05-24 12:51:25 +00:00
2013-10-11 20:48:38 +00:00
2014-03-20 10:48:29 +00:00
2014-01-14 19:35:09 +00:00
2013-12-16 19:53:26 +00:00
2013-10-08 00:08:49 +00:00
2013-10-11 20:48:38 +00:00
2013-10-05 17:08:42 +00:00
2013-04-22 08:06:17 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-07-10 22:34:19 +00:00
2014-03-01 00:38:40 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-12 12:51:05 +00:00
2014-01-21 02:57:56 +00:00
2014-04-14 23:47:48 +00:00
2014-06-24 20:01:50 +00:00
2013-09-21 00:05:25 +00:00
2013-08-15 06:47:53 +00:00
2014-07-19 01:41:07 +00:00
2013-09-04 04:12:25 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2014-01-11 21:22:35 +00:00
2014-02-21 23:49:50 +00:00
2014-08-14 15:14:51 +00:00
2014-06-28 23:34:11 +00:00
2014-05-11 01:31:57 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-08-15 06:47:53 +00:00
2013-03-25 21:09:49 +00:00
2013-08-15 06:47:53 +00:00
2014-08-27 00:36:55 +00:00
2013-08-15 06:47:53 +00:00
2014-07-02 10:25:45 +00:00
2014-07-14 16:27:53 +00:00
2014-02-11 10:34:51 +00:00
2014-05-02 09:33:30 +00:00
2014-07-22 14:47:42 +00:00