Is there any way we can differ complex from {double,double} or {float,float} ???
double complex z=1.0 + I*(2.0),
double a =1.0, b = 2.0, res;
doSomething(a,b);
res = cexp(z);
For this clang gives the same IR for parameters while calling both funcitons…
define dso_local i32 @main() local_unnamed_addr #0 {
%1 = tail call i32 @doSomething(double noundef 1.000000e+00, double noundef 2.000000e+00) #4
%2 = tail call { double, double } @cexp(double noundef 1.000000e+00, double noundef 2.000000e+00) #4
ret i32 0
}
attributes #4 = { nounwind }**`