Я использую OpenCL на карте ATI с включенным расширением printf. Я написал функцию для вывода переменных:
void printVar(constant char* name, float var)
{
printf("%s: %f\r\n", name, var);
}
Этот код работает, как и ожидалось, когда он скомпилирован как обычный C, но если я вызываю его в OpenCL с
printVar("foo", 0.123);
результатом всегда является некоторый случайный символ, за которым следует 0.123 вместо "foo: 0.123". Я предполагаю, что у компилятора есть проблемы с распознаванием строки char *, есть ли обходной путь или исправление, чтобы я мог заставить функцию работать?