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... |