David Green
fc4b0fe0a2
[GlobalOpt] Test array indices inside structs for out-of-bounds accesses
...
We now, from clang, can turn arrays of
static short g_data[] = {16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0};
into structs of the form
@g_data = internal global <{ [8 x i16], [8 x i16] }> ...
GlobalOpt will incorrectly SROA it, not realising that the access to the first
element may overflow into the second. This fixes it by checking geps more
thoroughly.
I believe this makes the globalsra-partial.ll test case invalid as the %i value
could be out of bounds. I've re-purposed it as a negative test for this case.
Differential Revision: https://reviews.llvm.org/D49816
llvm-svn: 338192
2018-07-28 08:20:10 +00:00
..
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-05-14 13:43:32 +00:00
2018-02-22 18:55:59 +00:00
2018-03-02 00:59:27 +00:00
2018-05-09 02:40:45 +00:00
2018-03-12 22:28:18 +00:00
2017-10-25 13:40:08 +00:00
2018-04-23 20:09:08 +00:00
2018-05-11 22:49:49 +00:00
2018-07-09 22:21:16 +00:00
2018-05-09 02:40:45 +00:00
2018-07-26 06:24:11 +00:00
2018-05-11 03:12:28 +00:00
2018-07-09 22:27:23 +00:00
2018-02-15 22:26:18 +00:00
2018-05-09 02:40:45 +00:00
2018-07-02 04:49:30 +00:00
2018-06-14 13:02:13 +00:00
2018-05-09 02:40:45 +00:00
2018-01-06 16:16:04 +00:00
2018-07-09 22:27:23 +00:00
2018-07-16 15:30:27 +00:00
2018-05-09 02:40:45 +00:00
2018-07-25 22:03:35 +00:00
2018-07-28 08:20:10 +00:00
2018-04-27 23:15:56 +00:00
2018-07-23 12:14:45 +00:00
2018-07-23 10:56:30 +00:00
2017-11-08 21:59:51 +00:00
2018-01-22 22:05:25 +00:00
2018-07-27 09:43:39 +00:00
2018-02-02 16:07:16 +00:00
2018-05-16 11:39:52 +00:00
2018-07-23 21:20:00 +00:00
2018-07-28 06:55:51 +00:00
2018-05-09 06:52:12 +00:00
2018-07-27 07:21:02 +00:00
2017-10-02 07:35:25 +00:00
2018-07-25 19:44:19 +00:00
2018-05-19 13:06:37 +00:00
2018-06-26 22:19:48 +00:00
2018-05-24 23:00:23 +00:00
2018-07-04 13:28:39 +00:00
2018-07-25 21:33:00 +00:00
2018-05-09 02:40:45 +00:00
2018-01-12 07:24:43 +00:00
2018-05-09 02:40:45 +00:00
2018-07-11 22:35:28 +00:00
2018-05-29 20:15:38 +00:00
2018-07-04 13:28:39 +00:00
2018-03-22 16:03:59 +00:00
2018-06-22 22:58:55 +00:00
2018-05-09 02:40:45 +00:00
2018-05-09 02:40:45 +00:00
2018-06-20 22:01:04 +00:00
2018-06-29 07:44:20 +00:00
2018-06-26 18:51:17 +00:00
2018-07-01 12:47:30 +00:00
2018-05-23 10:09:53 +00:00
2018-07-27 08:22:54 +00:00
2018-07-13 23:58:46 +00:00
2018-07-13 19:57:39 +00:00
2018-06-26 06:17:00 +00:00
2018-04-23 19:55:04 +00:00
2018-05-15 11:31:07 +00:00
2018-05-19 12:51:59 +00:00
2018-01-19 17:13:12 +00:00
2018-05-24 06:09:02 +00:00
2018-07-27 07:21:02 +00:00
2018-05-16 04:52:18 +00:00
2017-11-27 21:15:43 +00:00
2018-07-26 22:59:17 +00:00
2018-05-09 23:10:46 +00:00
2018-01-19 17:13:12 +00:00
2018-03-23 21:46:16 +00:00
2018-07-03 17:12:59 +00:00
2018-07-04 13:28:39 +00:00
2018-05-09 02:40:45 +00:00
2018-06-11 22:40:43 +00:00
2018-05-09 02:40:45 +00:00
2018-07-20 13:29:12 +00:00
2018-05-11 21:13:19 +00:00
2018-07-10 08:36:05 +00:00
2018-07-09 22:27:23 +00:00
2018-01-11 21:28:57 +00:00
2018-07-25 18:01:41 +00:00
2017-11-28 11:32:31 +00:00
2018-06-28 18:58:30 +00:00
2018-05-23 18:34:48 +00:00
2018-01-09 19:39:35 +00:00
2018-05-09 02:40:45 +00:00
2018-06-01 15:20:47 +00:00
2018-07-24 14:49:52 +00:00
2018-04-06 21:32:36 +00:00