Строковый литерал LLVM IR в несколько строк

Я сам излучаю 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++, который работает очень хорошо.

Пожалуйста, отформатируйте код как код (а не как обычный текст).

Binarus 06.09.2018 14:36

Что вы собираетесь с этим делать? В чем проблема банкомата?

compor 06.09.2018 14:37

Просто обновил контент на основе комментариев. Спасибо.

dac 06.09.2018 15:41

Почему вы генерируете текстовый LLVM IR и не используете C++ API?

arrowd 06.09.2018 18:35

Я мог передать битовый код LLVM IR; но пока мы пытаемся передать текстовый формат. Когда вы упоминаете об использовании C++ API, вы говорите, что вызовите C++ API для передачи IR? мы сами излучаем IR через Java.

dac 06.09.2018 20:58

Что касается статического объявления строк, то в IR нет поддержки многострочного макета. Вам нужно сделать это одной строкой.

Frank C. 07.09.2018 12:16

@dac Я не уверен, что понимаю требование; Зачем нужно разбивать его на несколько строк? Это для прикрас, потому что в противном случае это не имеет никакого значения. Многострочной поддержки таких постоянных строк в IR нет.

compor 08.09.2018 13:49
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
7
192
0

Другие вопросы по теме