Alex Richardson
fa210dd67b
[Thumb] Baseline test for incorrect relocation with -ffunction-sections
...
When calling a dso_local function, we end up creating a call against the
.Lfoo$local label. This might be converted to a relocation against a
section if there is such a matching one (which is a lot more likely with
-ffunction-sections) and then the LSB (Thumb flag) will be lost.
I originally noticed this with Morello LLVM (which uses the LSB to indicate
a C64 encoding mode function). The missing LSB meant that ld.lld would
insert a thunk that switches encoding mode which then resulted in errors
at runtime since functions were being entered with the wrong encoding mode.
Since the Morello backend is not upstream, I looked if any in-tree
backends could also be affected by the missing STT_FUNC flag and noticed
that Thumb is also affected (although the bug is rather difficult to
trigger - it currently requires inline assembly).
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D131432
2022-08-09 09:53:47 +00:00
..
2022-06-02 09:40:56 +02:00
2022-06-09 09:10:57 +00:00
2022-06-06 23:27:19 +03:00
2022-05-14 11:09:43 +02:00
2022-05-14 11:09:43 +02:00
2022-02-18 16:10:56 +00:00
2022-07-27 10:54:06 +01:00
2022-05-07 16:24:31 +00:00
2022-06-28 12:08:35 +01:00
2022-03-18 12:43:57 -07:00
2022-03-18 15:54:38 -07:00
2022-03-18 12:43:57 -07:00
2022-03-18 12:43:57 -07:00
2022-07-20 12:04:22 +01:00
2022-08-01 13:28:01 +01:00
2022-07-05 10:43:31 +01:00
2022-05-26 11:37:19 +01:00
2022-02-18 16:10:56 +00:00
2022-07-20 12:04:22 +01:00
2022-05-30 19:19:23 +01:00
2022-05-17 13:40:11 +01:00
2022-06-21 11:55:14 -06:00
2022-03-09 13:19:00 -05:00
2022-03-23 18:36:55 -07:00
2022-08-08 12:08:05 +01:00
2022-05-21 15:28:24 +01:00
2022-08-09 09:53:47 +00:00
2022-04-06 10:37:11 +01:00
2022-06-06 23:27:19 +03:00
2022-08-09 09:53:46 +00:00
2022-06-27 13:59:35 +01:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-04-20 09:37:16 -07:00
2022-02-18 16:10:56 +00:00
2022-02-23 08:55:54 +00:00
2022-06-27 14:08:48 +01:00
2022-06-27 14:08:48 +01:00
2022-05-06 09:26:30 -07:00
2022-07-15 11:28:41 +01:00
2022-02-18 16:10:56 +00:00
2022-03-07 11:28:32 -08:00
2022-03-09 13:19:00 -05:00
2022-07-28 14:10:44 +01:00
2022-02-18 16:10:56 +00:00
2022-07-26 11:35:16 +01:00
2022-07-26 11:35:16 +01:00
2022-07-26 11:35:16 +01:00
2022-07-26 11:35:16 +01:00
2022-07-08 08:14:24 -04:00
2022-02-18 16:10:56 +00:00
2022-03-16 14:11:53 -07:00
2022-02-18 16:10:56 +00:00
2022-03-16 14:11:53 -07:00
2022-03-16 14:11:53 -07:00
2022-03-30 09:29:32 -04:00
2022-03-30 09:29:32 -04:00
2022-02-18 16:10:56 +00:00
2022-06-13 11:48:18 +01:00
2022-05-26 06:45:23 -04:00
2022-04-13 09:31:51 +02:00
2022-07-28 14:10:44 +01:00
2022-04-06 20:32:53 +03:00
2022-07-15 13:54:17 +01:00
2022-07-16 17:32:58 +01:00
2022-05-18 09:23:18 -07:00
2022-05-07 17:23:42 +01:00
2022-02-23 08:55:54 +00:00
2022-02-23 08:55:54 +00:00
2022-05-03 12:36:35 +01:00
2022-07-20 10:49:31 +01:00
2022-02-18 16:10:56 +00:00
2022-04-13 09:31:51 +02:00
2022-04-13 09:31:51 +02:00
2022-08-08 21:09:14 +03:00
2022-07-15 10:18:17 +02:00
2022-06-02 12:29:59 +03:00
2022-08-08 11:53:56 +01:00
2022-02-23 08:55:54 +00:00
2022-02-23 08:55:54 +00:00
2022-02-23 08:55:54 +00:00
2022-02-23 08:55:54 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-05-07 16:24:31 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00
2022-08-09 09:53:47 +00:00
2022-07-27 11:33:49 +02:00
2022-07-26 11:35:16 +01:00
2022-04-03 14:42:59 +02:00
2022-06-20 08:37:38 +01:00
2022-02-23 08:55:54 +00:00
2022-07-08 08:14:24 -04:00
2022-07-08 08:14:24 -04:00
2022-06-01 15:28:19 +01:00
2022-03-30 11:22:03 -04:00
2022-03-30 11:22:03 -04:00
2022-07-16 11:38:24 +01:00
2022-08-08 09:47:55 +01:00
2022-02-18 16:10:56 +00:00
2022-02-18 16:10:56 +00:00