my program was generating a "Segmentation fault" and i finally narrowed down where it was occuring. i have developed a simple program below that re-creates the seg fault.

the seg fault occurs in the testLoop on the line "if ( clock() < $min_calc )". it does not seem to happen if i comment out the "const long double" line and replace "$min_calc" with "GLOB_min_calc_time".

can someone please either let me know why this is happening or if i have other errors in my code that are causing this?

i using FreeBSD 5.3 and GCC 4.1

thanks so much!

Code:#include <iostream> #include <ctime> bool testLoop ( int * const $calc_val ); long double GLOB_min_calc_time = 0; int GLOB_min_secs = 5; using namespace std; int main( const int $argc, const char * $argv_arr[]){ int * $calc_val = new int; *$calc_val = 2; long double $clock_start = clock(); GLOB_min_calc_time = (long double)(clock() + (GLOB_min_secs * CLOCKS_PER_SEC)); //CLK_TCK testLoop($calc_val); long double $clock_end = clock(); cout << "calc_val: " << *$calc_val << endl; cout << (long double)( $clock_end - $clock_start ) / (long double)CLOCKS_PER_SEC << " secs" << endl; delete $calc_val; return 0; } bool testLoop ( int * const $calc_val ){ const long double $min_calc = GLOB_min_calc_time; *$calc_val = *$calc_val; //do some calculations if ( clock() < $min_calc ){ testLoop($calc_val); } return true; }