получить тип результата в операциях с libgccjit

Я реализую Jit-компилятор с libgccjit и застрял при попытке получить результат двоичной операции.

Проблема не в результате, а в объявлении типа результата.

У меня два gcc_jit_rvalueи хотят выполнить простую бинарную операцию над ними.

Эти два значения могут иметь любой тип.

Для четвертого параметра gcc_jit_context_new_binary_op Я должен указать тип результата.

Учитывая, что я не знаю типы значений, но могу получить gcc_jit_type* из них, как я могу узнать стандартный тип результата C (тип результата, который GCC будет использовать при компиляции выражения C a + b) выражения?

Я знаю, что могу написать кучу if а также else или же switch заявления, чтобы пройти каждую чертову комбинацию целого числа и числа с плавающей запятой и вернуть то, что ожидалось бы в C, но это много печатать я действительно не хочу делать.

Есть ли какой-нибудь более простой способ найти тип результата, который GCC использовал бы, если бы он компилировал код C?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]