Skip to content
Snippets Groups Projects
  1. Jan 02, 2025
  2. Jan 03, 2024
  3. Jan 16, 2023
  4. Jan 03, 2022
  5. Jan 04, 2021
  6. Jan 01, 2020
  7. Jan 01, 2019
  8. Jan 03, 2018
  9. Jan 31, 2017
    • Alexandre Oliva's avatar
      Introduce C++ support in libcc1 · 8db29d88
      Alexandre Oliva authored
      Extend libcc1's with an API for C++ support.
      
      Extend libcc1's C API to distinguish between integral types with the
      same width, as in C++.  Likewise for float types.
      
      Export small bits of functionality from the C++ front-end for use in
      libcc1.  Add support for the C++ front-end to look up names and
      addresses using a libcc1-registered binding oracle.  Add support for
      global friends.
      
      
      for  gcc/cp/ChangeLog
      
      	Introduce C++ support in libcc1.
      	* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
      	(ansi_opname): Rename to...
      	(cp_operator_id): ... this.  Adjust all callers.
      	(ansi_assopname): Rename to...
      	(cp_assignment_operator_id): ... this.  Adjust all callers.
      	(cp_literal_operator_id): Declare.
      	(set_global_friend): Declare.
      	(is_global_friend): Declare.
      	(enum cp_oracle_request): New type.
      	(cp_binding_oracle_function): New type.
      	(cp_binding_oracle): Declare.
      	(cp_finish_injected_record_type): Declare.
      	* friend.c (global_friend): New var.
      	(set_global_friend): New fn.
      	(is_global_friend): New fn.
      	(is_friend): Call is_global_friend.
      	* name-lookup.c (cp_binding_oracle): New var.
      	(query_oracle): New fn.
      	(qualified_lookup_using_namespace): Call query_oracle.
      	(lookup_name_real_1): Likewise.
      	* parser.c (cp_literal_operator_id): Drop static.
      	* search.c (friend_accessible_p): Call is_global_friend.
      	* semantics.c (is_this_parameter): Accept a variable if the
      	binding oracle is enabled.
      
      for  include/ChangeLog
      
      	Introduce C++ support in libcc1.
      	* gcc-c-fe.def (int_type_v0): Rename from...
      	(int_type): ... this.  Introduce new version.
      	(float_type_v0): Rename from...
      	(float_type): ... this.  Introduce new version.
      	(char_type): New.
      	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
      	(gcc_type_array): Move...
      	* gcc-interface.h: ... here.
      	* gcc-cp-fe.def: New.
      	* gcc-cp-interface.h: New.
      
      for  libcc1/ChangeLog
      
      	Introduce C++ support.
      	* Makefile.am (AM_CPPFLAGS): Move some -I flags to...
      	(CPPFLAGS_FOR_C_FAMILY, CPPFLAGS_FOR_C, CPPFLAGS_FOR_CXX): ...
      	new macros.
      	(plugin_LTLIBRARIES): Add libcp1plugin.la.
      	(BUILT_SOURCES, MOSTLYCLEANFILES): Add...
      	(cp-compiler-name.h): ... this.  New.
      	(c-compiler-name.h): Rename all over from...
      	(compiler-name.h): ... this.  Create it atomically.
      	(marshall_c_source, marshall_cxx_source): New macros.
      	(libcc1plugin_la_SOURCES): Rename plugin.cc to libcc1plugin.cc.
      	Add marshall_c_source expansion.
      	(libcc1plugin.lo_CPPFLAGS): New macro.
      	(libcp1plugin_la_LDFLAGS): Likewise.
      	(libcp1plugin_la_SOURCES): Likewise.
      	(libcp1plugin.lo_CPPFLAGS): Likewise.
      	(libcp1plugin_la_LIBADD): Likewise.
      	(libcp1plugin_la_DEPENDENCIES): Likewise.
      	(libcp1plugin_la_LINK): Likewise.
      	(libcc1_la_SOURCES): Added marshall_c_source and
      	marshall_cxx_source expansions.
      	* Makefile.in: Rebuild.
      	* compiler-name.h: Rename all over to...
      	* c-compiler-name.h: ... this.  Define C_COMPILER_NAME instead
      	of COMPILER_NAME.
      	* plugin.cc: Rename all over to...
      	* libcc1plugin.cc: ... this.  Include marshall-c.hh.
      	(address_rewriter): Drop cleaning up of VLA sizes.
      	(plugin_build_decl): Mark decls as external.
      	(plugin_tagbind): Propagate name to all variants.
      	(build_anonymous_node): New.
      	(plugin_build_record_type): Use it instead of make_node.
      	(plugin_build_union_type): Likewise.
      	(plugin_build_enum_type): Likewise.
      	(plugin_finish_record_or_union): Update all type variants.
      	(safe_lookup_builtin_type): New.
      	(plugin_int_check): Factor out of, and add checks to, ...
      	(plugin_int_type): ... this.  Rename to...
      	(plugin_int_type_v0): ... this.
      	(plugin_int_type): New interface, new implementation.
      	(plugin_char_type): New.
      	(plugin_float_type_v0): Rename from...
      	(plugin_float_type): ... this.  New interface, new implementation.
      	(plugin_init): Bump handshake version.
      	* libcc1.cc: Include marshall-c.hh.  Drop gcc-interface.h.
      	(call_binding_oracle): Rename to...
      	(c_call_binding_oracle): ... this, into anonymous namespace.
      	(call_symbol_address): Rename to...
      	(c_call_symbol_address): ... this, likewise.
      	(GCC_METHOD#): Move methods into cc1plugin::c:: namespace.
      	(libcc1::compiler::find): Refer to C_COMPILER_NAME.
      	(fork_exec): Bump to GCC_C_FE_VERSION_1.
      	(libcc1_compile): Prefix callbacks with c_.
      	(gcc_c_fe_context): Accept GCC_C_FE_VERSION_1.
      	* libcc1.sym: Export gcc_cp_fe_context.
      	* libcp1.cc: New, mostly copied and adjusted from libcc1.cc.
      	* libcp1plugin.cc: New, initially copied from libcc1plugin.cc.
      	* libcp1plugin.sym: New.
      	* marshall-c.hh: New.  Move C-specific types from...
      	* marshall.cc: ... this.
      	(cc1_plugin::marshall_array_start): New.
      	(cc1_plugin::marshall_array_elmts): New.
      	(cc1_plugin::marshall for gcc_type_array): Use the above.
      	(cc1_plugin::unmarshall_array_start): New.
      	(cc1_plugin::unmarshall_array_elmts): New.
      	(cc1_plugin::unmarshall for gcc_type_array): Use the above.
      	* marshall.hh: Declare the new array building blocks.
      	Drop C-specific unmarshall declarations.
      	* marshall-cp.hh: New.
      	* names.cc (GCC_METHOD#): Add LANG:: to method names.
      	(LANG): Define while including gcc-c-fe.def and gcc-cp-fe.def.
      	* names.hh: Include gcc-c-fe.def and gcc-cp-fe.def in the
      	corresponding namespaces.
      	* rpc.hh: Don't include marshall.hh.
      	[GCC_CP_INTERFACE_H] (argument_wrapper): Specialize for
      	gcc_vbase_array, gcc_cp_template_args, gcc_cp_function_args.
      
      From-SVN: r245051
      8db29d88
    • Jan Kratochvil's avatar
      libcc1 base API: bump set_arguments; add set_driver_filename, set_triplet_regexp · 5d1b2443
      Jan Kratochvil authored
      for  include/ChangeLog
      
      	* gcc-interface.h (enum gcc_base_api_version): Update comment
      	for GCC_FE_VERSION_1.
      	(struct gcc_base_vtable): Rename set_arguments to
      	set_arguments_v0.  Add set_arguments, set_triplet_regexp and
      	set_driver_filename.
      
      for  libcc1/ChangeLog
      
      	* libcc1.cc (libcc1): Add class compiler with field compilerp,
      	class compiler_triplet_regexp and class
      	compiler_driver_filename.
      	(libcc1::libcc1): Initialize compilerp.
      	(libcc1::~libcc1): Delete compilerp.
      	(libcc1::compiler::find, libcc1::compiler_triplet_regexp::find)
      	(libcc1::compiler_driver_filename::find): New methods.
      	(libcc1_set_arguments): Remove parameter triplet_regexp.
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
      	(libcc1_set_arguments_v0): New functions.
      	(vtable): Use libcc1_set_arguments_v0, add
      	libcc1_set_arguments, libcc1_set_triplet_regexp and
      	libcc1_set_driver_filename.
      
      From-SVN: r245049
      5d1b2443
    • Jan Kratochvil's avatar
      libcc1 base API: add set_verbose and new version of compile · 3b5c1072
      Jan Kratochvil authored
      for  include/ChangeLog
      
      	* gcc-interface.h (enum gcc_base_api_version): Add comment to
      	GCC_FE_VERSION_1.
      	(struct gcc_base_vtable): Rename compile to compile_v0.
      	Update comment for compile.  New methods set_verbose and
      	compile.
      
      for  libcc1/ChangeLog
      
      	* libcc1.cc: Include intl.h.
      	(struct libcc1): Add field verbose.
      	(libcc1::libcc1): Initialize it.
      	(libcc1_set_verbose): New function.
      	(libcc1_set_arguments): Print messages for VERBOSE.
      	(libcc1_compile): Remove parameter verbose.  Use VERBOSE from
      	SELF.
      	(libcc1_compile_v0): New function.
      	(vtable): Use libcc1_compile_v0 and add libcc1_compile and
      	libcc1_set_verbose.
      
      From-SVN: r245048
      3b5c1072
    • Jan Kratochvil's avatar
      libcc1 base API version bump · 023721aa
      Jan Kratochvil authored
      for  include/ChangeLog
      
      	* gcc-interface.h (enum gcc_base_api_version): Add
      	GCC_FE_VERSION_1.
      
      for  libcc1/ChangeLog
      
      	* libcc1.cc (vtable): Update to GCC_FE_VERSION_1.
      	(gcc_c_fe_context): Accept also GCC_FE_VERSION_1.
      
      From-SVN: r245047
      023721aa
  10. Jan 04, 2017
  11. Jul 14, 2015
  12. Oct 27, 2014
    • Phil Muldoon's avatar
      Let GDB reuse GCC's parser. · ddc8de03
      Phil Muldoon authored
      2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
      	    Jan Kratochvil  <jan.kratochvil@redhat.com>
      	    Tom Tromey  <tromey@redhat.com>
      
      	* aclocal.m4: New file.
      	* callbacks.cc: New file.
      	* callbacks.hh: New file.
      	* cc1plugin-config.h.in: New file.
      	* configure: New file.
      	* configure.ac: New file.
      	* connection.cc: New file.
      	* connection.hh: New file.
      	* findcomp.cc: New file.
      	* findcomp.hh: New file.
      	* libcc1.cc: New file.
      	* libcc1plugin.sym: New file.
      	* libcc1.sym: New file.
      	* Makefile.am: New file.
      	* Makefile.in: New file.
      	* marshall.cc: New file.
      	* marshall.hh: New file.
      	* names.cc: New file.
      	* names.hh: New file.
      	* plugin.cc: New file.
      	* rpc.hh: New file.
      	* status.hh: New file.
      
      2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
      	    Jan Kratochvil  <jan.kratochvil@redhat.com>
      	    Tom Tromey  <tromey@redhat.com>
      
      	* gcc-c-fe.def: New file.
      	* gcc-c-interface.h: New file.
      	* gcc-interface.h: New file.
      
      2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
      	    Tom Tromey  <tromey@redhat.com>
      
      	* c-tree.h (enum c_oracle_request): New.
      	(c_binding_oracle_function): New typedef.
      	(c_binding_oracle, c_pushtag, c_bind): Declare.
      	* c-decl.c (c_binding_oracle): New global.
      	(I_SYMBOL_CHECKED): New macro.
      	(i_symbol_binding): New function.
      	(I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
      	(I_TAG_CHECKED): New macro.
      	(i_tag_binding): New function.
      	(I_TAG_BINDING, I_TAG_DECL): Redefine.
      	(I_LABEL_CHECKED): New macro.
      	(i_label_binding): New function.
      	(I_LABEL_BINDING, I_LABEL_DECL): Redefine.
      	(c_print_identifier): Save and restore c_binding_oracle.
      	(c_pushtag, c_bind): New functions.
      
      2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
      	    Tom Tromey  <tromey@redhat.com>
      
      	* aclocal.m4, configure: Rebuild.
      	* Makefile.in (aclocal_deps): Add gcc-plugin.m4.
      	* configure.ac: Use GCC_ENABLE_PLUGINS.
      	* stor-layout.c (finish_bitfield_layout): Now public.  Change
      	argument type to 'tree'.
      	(finish_record_layout): Update.
      	* stor-layout.h (finish_bitfield_layout): Declare.
      
      2014-10-27  Tom Tromey  <tromey@redhat.com>
      
      	* gcc-plugin.m4: New file.
      
      2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
      	    Tom Tromey  <tromey@redhat.com>
      
      	* Makefile.def: Add libcc1 to host_modules.
      	* configure.ac (host_tools): Add libcc1.
      	* Makefile.in, configure: Rebuild.
      
      From-SVN: r216748
      ddc8de03
Loading