#include <iostream>
#include <sstream>
extern double __enzyme_autodiff(void*, double);
double fn(double vec) {
std::stringstream testInput("14 1.5 somerandomextrachars");
char bar[50];
testInput.getline(bar, 5); // , testInput.widen('\n')
return vec * vec;
}
int main() {
double x = 2.1;
// double dsq = fn(x);
double dsq = __enzyme_autodiff((void *)fn, x);
std::cout << dsq;
}
calling fn directly works fine, calling __enzyme_autodiff(..) creates a segfault when using -O2/O3 and works fine with -O1/O0.