Assuming no data is lost when converting the value returned from the function returning a long to a long, no, there will be no change. You can even try it:
1 2 3 4 5 6 7 8 9 10 11
#include <iostream>
int main(int argc, char *argv[])
{
long x = 15;
longdouble y = x;
double z = y;
std::cout << y << std::endl;
return 0;
}