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.gimple-classes | Loading commit data... | |
array-notation-common.c | Loading commit data... | |
c-ada-spec.c | Loading commit data... | |
c-ada-spec.h | Loading commit data... | |
c-cilkplus.c | Loading commit data... | |
c-common.c | Loading commit data... | |
c-common.def | Loading commit data... | |
c-common.h | Loading commit data... | |
c-cppbuiltin.c | Loading commit data... | |
c-dump.c | Loading commit data... | |
c-format.c | Loading commit data... | |
c-format.h | Loading commit data... | |
c-gimplify.c | Loading commit data... | |
c-indentation.c | Loading commit data... | |
c-indentation.h | Loading commit data... | |
c-lex.c | Loading commit data... | |
c-objc.h | Loading commit data... | |
c-omp.c | Loading commit data... | |
c-opts.c | Loading commit data... | |
c-pch.c | Loading commit data... | |
c-ppoutput.c | Loading commit data... | |
c-pragma.c | Loading commit data... | |
c-pragma.h | Loading commit data... | |
c-pretty-print.c | Loading commit data... | |
c-pretty-print.h | Loading commit data... | |
c-semantics.c | Loading commit data... | |
c-target-def.h | Loading commit data... | |
c-target.def | Loading commit data... | |
c-target.h | Loading commit data... | |
c-ubsan.c | Loading commit data... | |
c-ubsan.h | Loading commit data... | |
c-warn.c | Loading commit data... | |
c.opt | Loading commit data... | |
cilk.c | Loading commit data... | |
cppspec.c | Loading commit data... | |
stub-objc.c | Loading commit data... |