aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov-io.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2016-10-13 15:26:54 -0400
committerJason Merrill <jason@gcc.gnu.org>2016-10-13 15:26:54 -0400
commit14a2c9aac04f013245e332b9e7ecb8c3a9f42a0a (patch)
tree96a256d961ae6d285efeaf0bfc8c5baa96931f31 /gcc/gcov-io.c
parentfc0911e0b86076b3241f19df921acf46f0890a59 (diff)
downloadgcc-14a2c9aac04f013245e332b9e7ecb8c3a9f42a0a.zip
gcc-14a2c9aac04f013245e332b9e7ecb8c3a9f42a0a.tar.gz
gcc-14a2c9aac04f013245e332b9e7ecb8c3a9f42a0a.tar.bz2
Implement P0386R2 - C++17 inline variables
2016-10-11 Jakub Jelinek <jakub@redhat.com> * dwarf2out.c (gen_member_die): Handle inline static data member definitions. c-family/ * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables. cp/ * cp-tree.h (struct lang_type): Shrink language field to 1 bit from 4. Add var_declared_inline_p field. Mention 2 spare bits. (DECL_VAR_DECLARED_INLINE_P): Define. (SET_DECL_VAR_DECLARED_INLINE_P): Define. (DECL_INLINE_VAR_P): Define. (diagnose_inline_vars_for_namespace): Declare. * decl.c (diagnose_inline_vars_for_namespace): New function. (duplicate_decls): For static data members copy DECL_DECLARED_CONSTEXPR_P. (redeclaration_error_message): Handle C++17 redundant redeclaration of constexpr static data member outside of class. (maybe_commonize_var): Handle inline variables. (check_initializer): Ignore inline variables for diagnostics. Adjust diagnostic wording for C++17. (make_rtl_for_nonlocal_decl): Allow in-class definition of inline static data members. (bad_specifiers): Don't diagnose inline on variables here. (grokvardecl): Add inlinep argument, non-static const inline variables are TREE_PUBLIC. (check_static_variable_definition): Return early also for inline variables. (grokdeclarator): Handle inline variables and inline static data members. * typeck2.c (store_init_value): Don't diagnose non-constant initializers for non-constexpr inline static data members. * decl2.c (vague_linkage_p): Return true for inline variables. (c_parse_final_cleanups): In-class declaration of inline static data members is a definition. Call diagnose_inline_vars_for_namespace through walk_namespaces. * pt.c (instantiate_decl): Set pattern_defined for in-class definitions of inline static data members. From-SVN: r241137
Diffstat (limited to 'gcc/gcov-io.c')
0 files changed, 0 insertions, 0 deletions