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
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ChangeLog | Loading commit data... | |
| ChangeLog-1993 | Loading commit data... | |
| ChangeLog-1994 | Loading commit data... | |
| ChangeLog-1995 | Loading commit data... | |
| ChangeLog-1996 | Loading commit data... | |
| ChangeLog-1997 | Loading commit data... | |
| ChangeLog-1998 | Loading commit data... | |
| ChangeLog-1999 | Loading commit data... | |
| ChangeLog-2000 | Loading commit data... | |
| ChangeLog-2001 | Loading commit data... | |
| ChangeLog-2002 | Loading commit data... | |
| ChangeLog-2003 | Loading commit data... | |
| ChangeLog-2004 | Loading commit data... | |
| ChangeLog-2005 | Loading commit data... | |
| ChangeLog-2006 | Loading commit data... | |
| ChangeLog-2007 | Loading commit data... | |
| ChangeLog-2008 | Loading commit data... | |
| ChangeLog-2009 | Loading commit data... | |
| ChangeLog-2010 | Loading commit data... | |
| ChangeLog-2011 | Loading commit data... | |
| ChangeLog-2012 | Loading commit data... | |
| ChangeLog-2013 | Loading commit data... | |
| ChangeLog-2014 | Loading commit data... | |
| ChangeLog-2015 | Loading commit data... | |
| ChangeLog.ptr | Loading commit data... | |
| ChangeLog.tree-ssa | Loading commit data... | |
| Make-lang.in | Loading commit data... | |
| NEWS | Loading commit data... | |
| call.c | Loading commit data... | |
| cfns.gperf | Loading commit data... | |
| cfns.h | Loading commit data... | |
| class.c | Loading commit data... | |
| config-lang.in | Loading commit data... | |
| constexpr.c | Loading commit data... | |
| constraint.cc | Loading commit data... | |
| cp-array-notation.c | Loading commit data... | |
| cp-cilkplus.c | Loading commit data... | |
| cp-cilkplus.h | Loading commit data... | |
| cp-gimplify.c | Loading commit data... | |
| cp-lang.c | Loading commit data... | |
| cp-objcp-common.c | Loading commit data... | |
| cp-objcp-common.h | Loading commit data... | |
| cp-tree.def | Loading commit data... | |
| cp-tree.h | Loading commit data... | |
| cp-ubsan.c | Loading commit data... | |
| cvt.c | Loading commit data... | |
| cxx-pretty-print.c | Loading commit data... | |
| cxx-pretty-print.h | Loading commit data... | |
| decl.c | Loading commit data... | |
| decl.h | Loading commit data... | |
| decl2.c | Loading commit data... | |
| dump.c | Loading commit data... | |
| error.c | Loading commit data... | |
| except.c | Loading commit data... | |
| expr.c | Loading commit data... | |
| friend.c | Loading commit data... | |
| g++spec.c | Loading commit data... | |
| init.c | Loading commit data... | |
| lambda.c | Loading commit data... | |
| lang-specs.h | Loading commit data... | |
| lex.c | Loading commit data... | |
| logic.cc | Loading commit data... | |
| mangle.c | Loading commit data... | |
| method.c | Loading commit data... | |
| name-lookup.c | Loading commit data... | |
| name-lookup.h | Loading commit data... | |
| operators.def | Loading commit data... | |
| optimize.c | Loading commit data... | |
| parser.c | Loading commit data... | |
| parser.h | Loading commit data... | |
| pt.c | Loading commit data... | |
| ptree.c | Loading commit data... | |
| repo.c | Loading commit data... | |
| rtti.c | Loading commit data... | |
| search.c | Loading commit data... | |
| semantics.c | Loading commit data... | |
| tree.c | Loading commit data... | |
| type-utils.h | Loading commit data... | |
| typeck.c | Loading commit data... | |
| typeck2.c | Loading commit data... | |
| vtable-class-hierarchy.c | Loading commit data... |