Commit f76b4224 by Nathan Sidwell Committed by Nathan Sidwell

builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name.

	gcc/
	* builtins.c (fold_builtin_FUNCTION): Use
	lang_hooks.decl_printable_name.

	gcc/cp/
	* g++.dg/cpp1y/builtin_FUNCTION.C: New.

From-SVN: r249784
parent f66459c1
2017-06-29 Nathan Sidwell <nathan@acm.org>
* builtins.c (fold_builtin_FUNCTION): Use
lang_hooks.decl_printable_name.
2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/81194
......
......@@ -8739,13 +8739,12 @@ fold_builtin_FILE (location_t loc)
static inline tree
fold_builtin_FUNCTION ()
{
const char *name = "";
if (current_function_decl)
{
const char *name = IDENTIFIER_POINTER (DECL_NAME (current_function_decl));
return build_string_literal (strlen (name) + 1, name);
}
name = lang_hooks.decl_printable_name (current_function_decl, 0);
return build_string_literal (1, "");
return build_string_literal (strlen (name) + 1, name);
}
/* Fold a call to __builtin_LINE to an integer constant. */
......
2017-06-29 Nathan Sidwell <nathan@acm.org>
* g++.dg/cpp1y/builtin_FUNCTION.C: New.
2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/81194
......
// { dg-do run }
#include <string.h>
const char *ct, *dt, *cv;
struct KLASS
{
KLASS () ;
~KLASS ();
operator int ();
};
KLASS::KLASS()
{
ct = __builtin_FUNCTION ();
}
KLASS::~KLASS ()
{
dt = __builtin_FUNCTION ();
}
KLASS::operator int ()
{
cv = __builtin_FUNCTION ();
return 0;
}
int main ()
{
int q = int (KLASS ());
if (strcmp (ct, "KLASS"))
return 1;
if (strcmp (dt, "~KLASS"))
return 2;
if (strcmp (cv, "operator int"))
return 3;
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment