diff options
author | Bernd Edlinger <edlinger@gcc.gnu.org> | 2016-11-21 14:17:05 +0000 |
---|---|---|
committer | Bernd Edlinger <edlinger@gcc.gnu.org> | 2016-11-21 14:17:05 +0000 |
commit | 48330c9355e32a41f18556fc0ebccdfe2cc51044 (patch) | |
tree | 2aa8fba617d40e3e606b3bdf3e74fb9eda06ff81 /gcc/builtins.def | |
parent | eeeaf7199a10b61c188785e7a86cd3cdecba07c3 (diff) |
re PR c++/71973 (c++ handles built-in functions inconsistently)
gcc:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the
new default-enabled warning..
* builtin-types.def (BT_CONST_TM_PTR): New primitive type.
(BT_PTR_CONST_STRING): Updated.
(BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed.
(BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type.
* builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins.
(strftime): Update builtin function.
* tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value.
* tree.h (const_tm_ptr_type_node): New type node.
* tree.c (free_lang_data, build_common_tree_nodes): Initialize
const_tm_ptr_type_node.
c-family:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* c.opt (-Wbuiltin-declaration-mismatch): New warning.
* c-common.c (c_common_nodes_and_builtins): Initialize
const_tm_ptr_type_node.
c:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* c-decl.c (diagnose_mismatched_decls): Use
OPT_Wbuiltin_declaration_mismatch here too.
cp:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* decl.c (duplicate_decls): Warn when a built-in function is redefined.
Don't overload builtin functions with C++ functions.
Handle const_tm_ptr_type_node like file_ptr_node.
Copy the TREE_NOTHROW flag unmodified to the old decl.
lto:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* lto-lang.c (lto_init): Assert const_tm_ptr_type_node is sane.
testsuite:
2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/71973
* g++.dg/pr71973-1.C: New test.
* g++.dg/pr71973-2.C: New test.
* g++.dg/pr71973-3.C: New test.
* g++.dg/lto/pr68811_0.C: Add -w to first lto-options.
* g++.dg/lookup/extern-c-redecl4.C: Adjust test expectations.
* g++.old-deja/g++.mike/p700.C: Add -Wno-builtin-declaration-mismatch
to dg-options.
* g++.old-deja/g++.other/realloc.C: Likewise.
* g++.old-deja/g++.other/builtins10.C: Adjust test expectations.
From-SVN: r242662
Diffstat (limited to 'gcc/builtins.def')
-rw-r--r-- | gcc/builtins.def | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/builtins.def b/gcc/builtins.def index 219feebd3ae..e2c582880c3 100644 --- a/gcc/builtins.def +++ b/gcc/builtins.def @@ -212,8 +212,8 @@ along with GCC; see the file COPYING3. If not see functions are mapped to the actual implementation of the STM library. */ #undef DEF_TM_BUILTIN #define DEF_TM_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ - DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ - true, true, true, ATTRS, false, flag_tm) + DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \ + false, true, true, ATTRS, false, flag_tm) /* Builtin used by the implementation of libsanitizer. These functions are mapped to the actual implementation of the @@ -866,7 +866,7 @@ DEF_GCC_BUILTIN (BUILT_IN_RETURN_ADDRESS, "return_address", BT_FN_PTR_UIN DEF_GCC_BUILTIN (BUILT_IN_SAVEREGS, "saveregs", BT_FN_PTR_VAR, ATTR_NULL) DEF_GCC_BUILTIN (BUILT_IN_SETJMP, "setjmp", BT_FN_INT_PTR, ATTR_RT_NOTHROW_LEAF_LIST) DEF_EXT_LIB_BUILTIN (BUILT_IN_STRFMON, "strfmon", BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, ATTR_FORMAT_STRFMON_NOTHROW_3_4) -DEF_LIB_BUILTIN (BUILT_IN_STRFTIME, "strftime", BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, ATTR_FORMAT_STRFTIME_NOTHROW_3_0) +DEF_LIB_BUILTIN (BUILT_IN_STRFTIME, "strftime", BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR, ATTR_FORMAT_STRFTIME_NOTHROW_3_0) DEF_GCC_BUILTIN (BUILT_IN_TRAP, "trap", BT_FN_VOID, ATTR_NORETURN_NOTHROW_LEAF_LIST) DEF_GCC_BUILTIN (BUILT_IN_UNREACHABLE, "unreachable", BT_FN_VOID, ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST) DEF_GCC_BUILTIN (BUILT_IN_UNWIND_INIT, "unwind_init", BT_FN_VOID, ATTR_NULL) |