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
2014-08-29 10:17:52 +00:00
2014-08-14 15:14:51 +00:00
2014-08-27 16:22:26 +00:00
2014-08-14 15:14:51 +00:00
2014-01-14 06:19:29 +00:00
2014-02-21 03:14:07 +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
2014-07-30 22:52:16 +00:00
2014-06-30 01:34:09 +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
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
2014-01-29 09:43:07 +00:00
2014-08-27 10:43:15 +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
2014-02-19 10:37:13 +00:00
2014-08-02 00:35:50 +00:00
2014-03-29 15:09:45 +00:00
2014-07-14 16:27: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
2014-06-13 14:24:59 +00:00
2014-09-04 22:16:33 +00:00
2014-05-23 19:07:25 +00:00
2014-07-30 22:52:16 +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
2014-05-29 20:47:29 +00:00
2014-06-13 19:43:04 +00:00
2014-02-21 23:49:50 +00:00
2014-08-14 09:37:50 +00:00
2014-03-29 15:09:45 +00:00
2014-05-28 20:26:57 +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
2014-08-04 23:21:26 +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
2014-07-31 06:31:19 +00:00
2014-03-24 21:43:36 +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
2014-03-26 15:36:05 +00:00
2014-01-13 19:48:13 +00:00
2014-01-14 19:35:09 +00:00
2014-01-21 02:57:56 +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
2014-05-14 00:29:00 +00:00
2013-01-16 01:22:32 +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
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
2014-08-19 17:17:40 +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
2014-04-16 08:06:33 +00:00
2014-04-08 22:30:47 +00:00
2014-05-20 19:20:23 +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
2014-01-22 20:11:01 +00:00
2014-01-14 19:26:03 +00:00
2014-03-06 01:37:10 +00:00
2014-01-15 09:08:07 +00:00
2014-07-29 06:53:14 +00:00
2014-01-15 21:42:41 +00:00
2014-01-14 19:35:09 +00:00
2014-03-30 13:00:06 +00:00
2014-09-04 15:05:39 +00:00
2014-07-09 13:43:19 +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
2014-04-25 20:41:38 +00:00
2014-07-17 11:38:22 +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
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
2014-06-05 16:52:20 +00:00
2014-05-24 12:52:07 +00:00
2014-02-22 16:59:24 +00:00
2014-01-15 19:07:16 +00:00
2014-08-28 00:53:20 +00:00
2014-01-14 19:35:09 +00:00
2014-02-21 23:49:50 +00:00
2014-02-21 23:49:50 +00:00
2014-06-30 01:34:09 +00:00
2014-07-21 00:56:36 +00:00
2014-06-30 01:34:09 +00:00
2014-07-28 13:17:52 +00:00
2014-03-02 18:24:18 +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
2014-05-28 10:53:06 +00:00
2014-02-21 23:49:50 +00:00
2014-01-23 15:05:00 +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
2014-07-24 18:09:38 +00:00
2014-07-30 22:52:16 +00:00
2014-04-07 19:27:58 +00:00
2014-07-02 16:54:41 +00:00
2014-04-08 22:49:38 +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
2014-03-24 21:43:36 +00:00
2014-02-21 23:49:50 +00:00
2014-05-24 12:51:25 +00:00
2014-03-20 10:48:29 +00:00
2014-01-14 19:35:09 +00:00
2014-07-10 22:34:19 +00:00
2014-03-01 00:38:40 +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
2014-07-19 01:41:07 +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
2014-08-27 00:36:55 +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