Я излучаю LLVM IR самостоятельно.
Допустим, у нас есть строковый литерал длиной 400 символов.Есть ли в любом случае, что я мог бы испустить строковый литерал в несколько строк?
Вот пример:
@.str = internal global [400 x i8] c"the-first-100-characters"
"the-second-100-characters"
"the-third-100-characters"
"the-fourth-100-characters", align 1
Clang не принимает вышеупомянутый IR, где несколько строк строковых литералов объединяются вместе.
Вот сообщение об ошибке:
error: constant expression type mismatch
Как только я собрал их все вместе в строку «все 400 символов», это работает.
Цельэто конвертировать свой собственный язык в LLVM IR.Ранее мой собственный язык был преобразован в C / C ++, который работает очень хорошо.