This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC stack backtraces



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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]