| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cp/ChangeLog:
* abi-instr.cc (gen_scope_of): Member types are linked to their
scope via their DECL_CONTEXT (TYPE_NAME()), not their
TYPE_CONTEXT. <grin/>. Also, do not add empty elements to the
scope hash table.
(gen_scope_decl): Do not use a scope that is not yet fully built.
We should not be using gen_scope_decl while building type or decl
members. Rather, we should just be sticking the members into the
non-fully-built type/decl that we have at hand.
(gen_class_type_in_scope): Handle member types. Also, for member
functions, use the new (more generic) version of
abigail::add_decl_to_scope.
gcc/testsuite/ChangeLog:
* g++.dg/abi-dump/bases-0.C.bi: Update this for member type(def).
* g++.dg/abi-dump/simple-class-0.C.bi: Likewise.
|
|
|
|
|
|
|
|
|
| |
gcc/testsuite:
* g++.dg/abi-dump/bases-0.C.bi: Update this for libabigail now
serializes constructor='yes' and const='yes' attribute on
'member-function' XML elements.
* g++.dg/abi-dump/simple-class-0.C.bi: Likewise.
|
|
|
|
| |
* cp/abi-instr.cc (gen_type_in_scope): Serialize REAL_TYPE.
|
|
|
|
|
| |
* configure: Update for libabigail use as dependency as opposed to
in-tree.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cp/abi-instr.cc: Use libabigail headers without specifying the
libabigail sub-directory. That now works when using libabigail as
(a library copied into the GCC tree (ugly but some GCC developers
likes doing that) and when libabigail is used as a dependency that
is make install-ed (that's my preferred usage case because that is
what we will encounter in distributions' related usage cases)
provided -I $includedir/libabigail is given on the command line.
For non GCC usage case though, I'd recommend that user just write
#include libabigail/abg-*.h.
(abi_instr_dump_file): Use the new
translation_unit::write.
|
|
|
|
|
| |
* config/abigail.m4: The include path used for compilation goes to
$includedir/libabigail.
|
|
|
|
| |
* abigail.m4: Make $abigaillibs statically link libabigail by default.
|
|
|
|
| |
* gcc/cp/abi-instr.cc: Move headers under the libabigail directory.
|
|
|
|
|
| |
* g++.dg/abi-dump/bases-0.C: New test case.
* g++.dg/abi-dump/bases-0.C.bi: New test input.
|
|
|
|
|
|
| |
gcc/testsuite/
* g++.dg/abi-dump/simple-class-0.C: Cleanup abi dumps.
|
|
|
|
|
|
|
|
|
| |
gcc/testsuite/
* lib/abi-dump-dg.exp: New file
* g++.dg/abi-dump/abi-dump.exp: Likewise.
* g++.dg/abi-dump/simple-class-0.C: Likewise.
* g++.dg/abi-dump/simple-class-0.C.bi: Likewise.
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/
* c-family/c.opt: Support -fdump-abi=
gcc/cp/
* abi-instr.cc (convert_location): Support -fdump-abi=2 to omit
directory name from file path. This is useful for test uses
cases, when we don't want a different directory name to incur a
difference in the final abi instrumentation dump.
|
|
|
|
|
|
|
|
| |
gcc/cp/
* abi-instr.cc (gen_class_type_in_scope): Handle definition of
class type declaration-only here ...
(gen_type_in_scope): ... not here.
|
|
|
|
|
|
|
| |
gcc/cp/
* abi-instr.cc (gen_class_type_in_scope): Don't crash when a class
type has no binfo. Serialize base class layout offset and virtual.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/cp/
* Make-lang.in (decl.o): Remove dependency on abi-instr.h
* abi-instr.cc (type_or_decl_equal::operator()): Support
comparison of trees of different code.
(class_map): Rename class_wip_map typedef into this.
(function_type_map): New typedef.
(tree_2_class_map, tree_2_function_type_map): New global map
pointers.
(get_tree_2_decl_map, get_tree_2_class_map)
(get_tree_2_function_type_map): New accessors.
(gen_class_type_in_scope): Take a default argument for the scope
parameter.
(deallocate_stuff): Deallocate tree_2_class_map and
tree_2_function_type_map.
(get_wip_classes_map): Adjust for the renaming of class_wip_map
into class_map.
(gen_function_type): For method types, generate the representation
for the base type if necessary. As the generation of the base
type can indirectly generate the current method type, look for the
method type in the hash map after generating the base type. Add
the generated type into the function type map.
(gen_class_in_scope): Add the resulting class into the class map
and look it up there to avoid building the class twice. Generate
the representation of the scope if necessary.
(gen_decl_in_scope): Add the resulting decl into the decl map and
look it up there to avoid building the decl twice.
(gen_type_in_scope): Support building METHOD_TYPE from here.
(abi_instr_emit_vars_or_funs): Remove this definition.
* abi-instr.h (abi_instr_emit_vars_or_funs): Remove this
declaration.
* decl.c (wrapup_globals_for_namespace): Remove the
instrumentation of vars and functions from here.
* decl2.c (cp_write_global_declarations): Remove the
instrumentation of vars and functions from the pending_statics
vector. Walk the defined functions and globals as seen by cgraph
and instrument them if they are emitted.
|
|
|
|
|
|
|
|
| |
gcc/cp/
* gcc/cp/abi-instr.cc (get_base_access): New static function.
(gen_type_in_scope): Generate bases classes -- without virtual
stuff for now.
|
|
|
|
|
|
|
| |
gcc/cp/
* abi-instr.cc (gen_type_in_scope): When a class is a definition
for a forward declaration, mark it as such.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/cp/
* abi-instr.h (abi_instr_emit_vars_or_funs): Renamed
abi_instr_emit_vars into this.
(abi_instr_emit_variable): New declaration.
* abi-instr.cc (should_instr_var, convert_qualifiers): New
static functions.
(abi_instr_emit_variable): New public function.
(gen_scope_of): Add the generated scope in its hash table.
(should_instr_function): Do not instrument non emitted abstract
in-charge cdtors.
(gen_class_type_in_scope): Factorize from ...
(gen_type_in_scope): ... here. Support qualified types and
typedefs.
(gen_scope_decl): Generate scopes of class type.
(abi_instr_emit_vars_or_funs): Renamed abi_instr_emit_vars into
this. Make it support instrumenting functions as well.
* decl.c (wrapup_globals_for_namespace): Adjust for use of
abi_instr_emit_vars_or_funs.
* decl2.c (cp_write_global_declarations): Don't forget to
instrument static members of classes.
|
|
|
|
|
| |
gcc/
* tree.h (is_typedef_decl, typedef_variant_p): Take const trees.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* abi-instr.cc (class_wip_map): New static global pointer.
(deallocate_stuff): De-allocate wip_classes_map.
(get_wip_classes_map, get_access, should_instr_function)
(gen_data_member, gen_member_function, gen_function_type)
(gen_function_decl): New static functions.
(get_tree_name): Renamed get_name into this. Make it return the
string by value.
(get_mangled_name): Make this return the string by value.
(gen_decl_in_scope): Use gen_function_decl to support functions.
(gen_type_in_scope): Adjust for the use of get_tree_name and
get_mangled_name. Support FUNCTION_TYPE using gen_function_type.
Add initial support for RECORD_TYPE.
(abi_instr_emit_vars): Do not instrument things that are not
variables, or that are variables that are not emitted.
(abi_instr_emit_function): Be more picky about the kind of
functions that are emitted.
* decl.c (wrapup_globals_for_namespace): Adjust as
abi_instr_emit_function now knows how to filters out functions
that we do not wish to instrument.
|
|
|
|
|
|
|
| |
gcc/cp/
* decl.c (wrapup_globals_for_namespace): For abi dump of
functions, only emit the decl that have been assembled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/cp/
* abi-instr.h (abi_instr_emit_function): New declaration.
* abi-instr.c (get_name, get_mangled_name)
(get_int_constant_value, abi_instr_emit_function): New
definitions.
(gen_decl_in_scope): Simplify logic. Add support for the
FUNCTION_DECL case.
(gen_type_in_scope): Use the new get_name, get_mangled_name,
get_int_constant_value. Add support for the FUNCTION_TYPE case.
* decl.c (wrapup_globals_for_namespace): Emit the decls of public
non-built-in functions.
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (gen_type_in_scope): Generate instrumentation for
POINTER_TYPE, REFERENCE_TYPE nodes.
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (get_location): Don't crash on type that don't have
TYPE_DECL.
|
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (gen_type_in_scope): Generate instrumentation for
ENUMERAL_TYPE and its UNDERLYING_TYPE. Factorize type hash table
updating.
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (gen_type_in_scope): Use TYPE_IDENTIFIER rather
than rather than DECL_NAME (TYPE_NAME).
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (gen_decl, gen_decl_in_scope): Do not emit a decl
if we can't emit its type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/cp
* abi-instr.cc (struct type_or_decl_hash): Rename struct tree_hash
into this. In the hashing function, ensure we have either types
or decls.
(struct type_or_decl_equal): Rename struct tree_equal into this.
Use same_type_p to compare types, as operand_equal_p is not suited
for them.
(typedef scope_map): Rename typedef tree_scope_decl_map into this.
(typedef type_map, typedef decl_map): New typedefs.
(tu, conf): Make these globals be naked pointers rather than
shared_ptrs.
(tree_2_scope_map, tree_2_type_map, tree_2_decl_map): New global
maps.
(deallocate_stuff, get_cur_ty, get_conf, convert_visibility)
(convert_location, get_decl_binding): Declare static functions at
the beginning of the translation unit.
(gen_scope_of): Rename get_scope into this. Make it really
generate scopes for decls/types that have one.
(get_decl_visibility): Rename decl_visibility into this.
(get_location): Rename tree_location into this.
(gen_type): Rename gen_type_decl into this. It's now supposed to
handle all types.
(get_tree_2_scope_map, get_tree_2_type_map, gen_scope_decl)
(gen_type_in_scope, gen_decl_in_scope, gen_decl)
(get_tree_2_type_map): New static functions.
(deallocate_stuff, get_cur_tu, get_conf, get_tree_2_scope_map):
Adjust as the globals are now naked pointers.
(convert_location): For builtins' locations, return a zero as
location number.
(abi_instr_emit_vars): Use the new gen_decl on each var.
(*): Add comment to all the functions so far.
|
|
|
|
|
|
| |
gcc/cp/
* Make-lang.in (c++.tags): Consider *.cc files too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc/
* c-family/c.opt (fdump-abi): New command line option that flips
the flag_dump_abi flag.
* doc/invoke.texi: Add documentation for fdump-abi
gcc/cp/
* abi-instr.{h,cc}: New files.
* decl.c (wrapup_globals_for_namespace): Emit abi instrumentation
for the global variables that are emitted.
* lex.c (cxx_finish): Call abi_instr_finish from here.
(cxx_init): Call abi_instr_init from here.
* Make-lang.in: Add the new files to the build system. Add
abi-instr.h to the dependencies of decl.c and lex.c
|
|
|
|
|
|
| |
* config/abigail.m4: Set abibaillibs even in the case of the case
of an in-tree libabigail.
* configure: Re-generate.
|
|
|
|
|
|
| |
* Makefile.def (host_modules=libabigail): Set lib_path to src/.lib
and add --disable-shared to configure options.
* Makefile.in: Re-generate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
/
* configure.ac: Allow the use of libabigail either as an external
dependency or as a library built from within the source tree of
GCC.
* Makefile.def: Add libabigail as new host_module.
* Makefile.tpl: Define ABIGAILLIBS, ABIGAILINC HOST_ABIGAILLIBS
and HOST_ABIGAILLIBS, and pass ABIGAILINC, ABIGAILLIBS to
gcc/configure.
* config/abigail.m4: New m4 macro library file, copied verbatim
from libabigail. This is used to detect the library, its version
etc.
* Makefile.in: Re-generate.
* configure: Likewise.
gcc/
* configure.ac: Recognize ABIGAILLIBS and ABIGAILINC as
precious variables.
* Makefile.in: Add abigail library to BACKENDLIBS, and abigail
headers path to INCLUDES.
* configure: Re-generate.
* config.in: Likewise.
gcc/cp/
* cp/abi-instr.c: New file.
* gcc/cp/Make-lang.in: Add abi-instr.c to the build system.
|
|
|
|
|
|
|
| |
* pt.c (any_template_arguments_need_structural_equality_p): A
TEMPLATE_TEMPLATE_PARM can require structural type comparison.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199315 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* include/ext/type_traits.h (__is_null_pointer): Add std::nullptr_t
overload.
* include/bits/cpp_type_traits.h (__is_fundamental): Remove, unused.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199313 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config.gcc (powerpc-*): Allow native for with-cpu.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199308 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
include unistd.h and sys/syscall.h. If _GLIBCXX_COMPATIBILITY_CXX0X,
don't define system_clock::is_steady, system_clock::now() and
steady_clock::is_steady.
(std::chrono::system_clock::now()): If
_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL, call
syscall (SYS_clock_gettime, ...) instead of clock_gettime (...).
(std::chrono::system_clock::now()): Likewise. Add weak attribute
if _GLIBCXX_COMPATIBILITY_CXX0X and compatibility-chrono.cc will
be non-empty.
* src/Makefile.am (cxx11_sources): Add compatibility-chrono.cc.
(compatibility-chrono.lo, compatibility-chrono.o): New goals.
* src/c++11/compatibility-chrono.cc: New file.
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): On linux*, check for
syscall (SYS_clock_gettime, CLOCK_MONOTONIC, &tp).
* testsuite/util/testsuite_abi.cc (check_version): Add
GLIBCXX_3.4.20 version and make it the latest.
* config/abi/pre/gnu.ver (_ZNSt6chrono12steady_clock3nowEv): Export
also @@GLIBCXX_3.4.19. Move all symbols so far added for GCC 4.9 to
@@GLIBCXX_3.4.20 instead.
* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
Regenerated.
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
Regenerated.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
Regenerated.
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
Regenerated.
* config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
* config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
* config.h.in: Regenerated.
* src/Makefile.in: Regenerated.
* configure: Regenerated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2013-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/19618
* class.c (check_bitfield_decl): Warn for bool and enum bitfields
with width exceeding the type.
/testsuite
2013-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/19618
* g++.dg/expr/bitfield12.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199306 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-vrp.c (simplify_cond_using_ranges): Only simplify a
conversion feeding a condition if the range has an overflow
if -fstrict-overflow. Add warnings for when we do make the
transformation.
PR tree-optimization/57124
* gcc.c-torture/execute/pr57124.c: New test.
* gcc.c-torture/execute/pr57124.x: Set -fno-strict-overflow.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199305 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199302 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
2013-05-24 Dehao Chen <dehao@google.com>
* gcc/tree-cfg.c (locus_discrim_map): Fix the typo.
(locus_discrim_hasher): Likewise.
(locus_discrim_hasher::hash): Likewise.
(locus_discrim_hasher::equal): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199300 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/57294
* cgraph.h (ipa_record_stmt_references): Declare.
* cgraphbuild.c (ipa_record_stmt_references): New function.
(build_cgraph_edges): Use ipa_record_stmt_references.
(rebuild_cgraph_edges): Likewise.
(cgraph_rebuild_references): Likewise.
* ipa-prop.c (ipa_modify_call_arguments): Discard references
associated with the old statement and build references from the
newly built statements.
* ipa-ref.c (ipa_remove_stmt_references): New function.
* ipa-ref.h (ipa_remove_stmt_references): Declare.
testsuite/
* gcc.dg/ipa/pr57294.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199299 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lra-constraints.c (emit_spill_move): Use smaller mode for
mem-mem moves.
(check_and_process_move): Consider mem-reg moves for secondary
too.
(curr_insn_transform): Don't lose insns emitted before for
secondary memory moves.
(inherit_in_ebb): Mark defined reg. Add usage only if it is not a
reg set up in the current insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199298 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* download_prerequisites: Download isl and cloog conditionally.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199297 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2013-05-24 Dehao Chen <dehao@google.com>
* gcc/testsuite/gcc.dg/debug/dwarf2/discriminator.c: New Testcase.
* gcc/tree-cfg.c (locus_descrim_hasher::hash): Change discrminator
hash function.
(locus_descrim_hasher::equal): Likewise.
(build_gimple_cfg): New discrminator assignmnet algorithm
(make_edges): Likewise.
(next_discriminator_for_locus): Likewise.
(same_line_p): Likewise.
(assign_discriminators): Likewise.
(make_cond_expr_edges): Likewise.
(make_gimple_switch_edges): Likewise.
(make_goto_expr_edges): Likewise.
(make_gimple_asm_edges): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199295 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199294 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199293 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* semantics.c (cxx_eval_constant_expression): Handle FMA_EXPR.
(cxx_eval_trinary_expression): Rename from cxx_eval_vec_perm_expr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199292 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/57287
* tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
all SSA names that occur in abnormal PHIs.
* gcc.dg/pr57287.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199289 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/26572
* g++.dg/template/error51.C: New.
2013-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/25503
* g++.dg/template/bitfield2.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199288 138bc75d-0d04-0410-961f-82ee72b054a4
|