GCC stack backtraces

Diego Novillo dnovillo@google.com
Thu Sep 13 17:21:00 GMT 2012


Thanks for the patch!


On 2012-09-13 08:46 , Richard Guenther wrote:

> Index: gcc/testsuite/g++.dg/ext/builtin-location.C
> ===================================================================
> *** /dev/null	1970-01-01 00:00:00.000000000 +0000
> --- gcc/testsuite/g++.dg/ext/builtin-location.C	2012-09-13 14:27:34.868103539 +0200
> ***************
> *** 0 ****
> --- 1,20 ----
> + // { dg-do link }
> +
> + #include <cstdio>
> +
> + void bar (const char *file = __builtin_FILE (),
> + 	  const char *function = __builtin_FUNCTION (),
> + 	  int line = __builtin_LINE ())
> + {
> +   printf ("%s (%s): %d\n", file, function, line);

Shouldn't this test that it is getting the file, function and line for 
the call to bar() inside of main?

Maybe something like:

const char *FILE;
const char *FN;
int LINE;

void bar (const char *file = __builtin_FILE (),
	const char *function = __builtin_FUNCTION (),
	int line = __builtin_LINE ())
{
   FILE = file;
   FN = function;
   LINE = line;
}

int main()
{
   bar();
   if (LINE != __LINE__ - 1)
     return 1;
   if (strcmp (function, "main") != 0)
     return 1;
   if (strcmp (file, "builtin-location.C") != 0)
     return 1;
   return 0;
}



Diego.



More information about the Gcc mailing list