aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-01-08New jit API entrypoint: gcc_jit_context_set_logfileDavid Malcolm23-401/+1544
gcc/jit/ChangeLog: * Make-lang.in (jit_OBJS): Add jit/jit-logging.o. * docs/internals/index.rst (Overview of code structure): Mention gcc_jit_context_set_logfile, and embed the example logfile. * docs/internals/test-hello-world.exe.log.txt: New file: example of a logfile. * docs/topics/contexts.rst (Debugging): Add documentation for gcc_jit_context_set_logfile. * docs/_build/texinfo/libgccjit.texi: Regenerate. * dummy-frontend.c: Include "jit-logging.h". (jit_langhook_init): Assert that there is an active playback context. If it has a logger, log entry/exit to this function. (jit_langhook_write_globals): Likewise. * jit-common.h (gcc::jit::logger): New forward declaration. * jit-logging.c: New file. * jit-logging.h: New file. * jit-playback.c: Include "jit-logging.h". (gcc::jit::playback::context::context): Initialize the log_user base class from the recording context's logger (if any). Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::playback::context::~context): Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::playback::build_stmt_list): Likewise. (gcc::jit::playback::function::postprocess): Likewise. (gcc::jit::playback::context::compile): Likewise. Log the entry/exit to toplev::main and toplev::finalize. Log the fake argv passed to toplev::main. (gcc::jit::playback::context::acquire_mutex): Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::playback::context::release_mutex): Likewise. (gcc::jit::playback::context::make_fake_args): Likewise. (gcc::jit::playback::context::extract_any_requested_dumps): Likewise. (gcc::jit::playback::context::convert_to_dso): Likewise. Also, log the arguments that the driver is invoked with. (gcc::jit::playback::context::dlopen_built_dso): Likewise. Pass the logger to the result object. (gcc::jit::playback::context::replay): Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::playback::context::dump_generated_code): Likewise. (gcc::jit::playback::context::handle_locations): Likewise. * jit-playback.h (gcc::jit::playback::context): Make this be a subclass of gcc::jit::log_user. * jit-recording.c: Include "jit-logging.h". (gcc::jit::recording::context::context: Initialize the logger to NULL for root contexts, or to the parent's logger for child contexts. (gcc::jit::recording::context::~context): Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::recording::context::replay_into): Likewise. (gcc::jit::recording::context::disassociate_from_playback): Likewise. (gcc::jit::recording::context::compile): Likewise. (recording::context::add_error_va): Likewise. Also, log the error. (gcc::jit::recording::context::validate): Use JIT_LOG_SCOPE to log entry/exit from the function body. * jit-recording.h: Include "jit-logging.h". (gcc::jit::recording::context): Make this be a subclass of gcc::jit::log_user. * jit-result.c: Include "jit-common.h" and "jit-logging.h". (gcc::jit::result::result): Add logger param, recording it. Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::result::~result(): Use JIT_LOG_SCOPE to log entry/exit from the function body. (gcc::jit::result::get_code): Likewise. * jit-result.h (gcc::jit::result): Make this be a subclass of gcc::jit::log_user. (gcc::jit::result::result): Add logger parameter. * libgccjit++.h (gccjit::context::set_logfile): New function. * libgccjit.c: Include "jit-logging.h". (gcc_jit_context_acquire): Log the context. (gcc_jit_context_release): Use JIT_LOG_FUNC to log entry/exit from the function body, and log the context. (gcc_jit_context_new_child_context): Likewise, logging both contexts. (gcc_jit_context_new_location): Use JIT_LOG_FUNC to log entry/exit from the function body. (gcc_jit_context_get_type): Likewise. (gcc_jit_context_get_int_type): Likewise. (gcc_jit_context_new_array_type): Likewise. (gcc_jit_context_new_field): Likewise. (gcc_jit_context_new_struct_type): Likewise. (gcc_jit_context_new_opaque_struct): Likewise. (gcc_jit_struct_set_fields): Likewise. (gcc_jit_context_new_union_type): Likewise. (gcc_jit_context_new_function_ptr_type): Likewise. (gcc_jit_context_new_param): Likewise. (gcc_jit_context_new_function): Likewise. (gcc_jit_context_get_builtin_function): Likewise. (gcc_jit_function_get_param): Likewise. (gcc_jit_function_dump_to_dot): Likewise. (gcc_jit_function_new_block): Likewise. (gcc_jit_context_new_global): Likewise. (gcc_jit_context_new_rvalue_from_int): Likewise. (gcc_jit_context_zero): Likewise. (gcc_jit_context_one): Likewise. (gcc_jit_context_new_rvalue_from_double): Likewise. (gcc_jit_context_new_rvalue_from_ptr): Likewise. (gcc_jit_context_null): Likewise. (gcc_jit_context_new_string_literal): Likewise. (gcc_jit_context_new_unary_op): Likewise. (gcc_jit_context_new_binary_op): Likewise. (gcc_jit_context_new_comparison): Likewise. (gcc_jit_context_new_call): Likewise. (gcc_jit_context_new_call_through_ptr): Likewise. (gcc_jit_context_new_cast): Likewise. (gcc_jit_context_new_array_access): Likewise. (gcc_jit_lvalue_access_field): Likewise. (gcc_jit_rvalue_access_field): Likewise. (gcc_jit_rvalue_dereference_field): Likewise. (gcc_jit_rvalue_dereference): Likewise. (gcc_jit_lvalue_get_address): Likewise. (gcc_jit_function_new_local): Likewise. (gcc_jit_block_add_eval): Likewise. (gcc_jit_block_add_assignment): Likewise. (gcc_jit_block_add_assignment_op): Likewise. (gcc_jit_block_end_with_conditional): Likewise. (gcc_jit_block_add_comment): Likewise. (gcc_jit_block_end_with_jump): Likewise. (gcc_jit_block_end_with_return): Likewise. (gcc_jit_block_end_with_void_return): Likewise. (gcc_jit_context_set_str_option): Likewise. (gcc_jit_context_set_int_option): Likewise. (gcc_jit_context_set_bool_option): Likewise. (gcc_jit_context_enable_dump): Likewise. (gcc_jit_context_compile): Likewise. Also log the context, and the result. (gcc_jit_context_dump_to_file): Likewise. (gcc_jit_context_set_logfile): New function. (gcc_jit_context_get_first_error): Use JIT_LOG_FUNC to log entry/exit from the function body. (gcc_jit_result_get_code): Likewise. Also log the fnname) and the ptr to be returned. (gcc_jit_result_release): Likewise. Also log the result. * libgccjit.h: Include <stdio.h>, since we need FILE *. (gcc_jit_context_set_logfile): New declaration. * libgccjit.map (gcc_jit_context_set_logfile): New. gcc/testsuite/ChangeLog: * jit.dg/harness.h (set_up_logging): New function. (test_jit): Fail if gcc_jit_context_acquire fails. Call set_up_logging on the context, so that every testcase is logged to a particular file. * jit.dg/test-nested-contexts.c (main): Open a logfile, and call gcc_jit_context_set_logfile on the top-level context. From-SVN: r219357
2015-01-08re PR target/64338 (ICE in swap_condition, at jump.c:628)Jakub Jelinek4-13/+61
PR target/64338 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse compare_code when it is unconditionally overwritten afterwards. Use ix86_reverse_condition instead of reverse_condition. Don't change code if *reverse_condition* returned UNKNOWN and don't swap ct/cf and negate diff in that case. * g++.dg/opt/pr64338.C: New test. From-SVN: r219356
2015-01-08tsan.c (pass_tsan::gate): Add no_sanitize_thread support.Mike Stump5-2/+27
* tsan.c (pass_tsan::gate): Add no_sanitize_thread support. (pass_tsan_O0::gate): Likewise. * extend.texi (Function Attributes): Add no_sanitize_thread documentation. * c-common.c (c_common_attribute_table): Add no_sanitize_thread. From-SVN: r219355
2015-01-08trans-decl.c (gfc_build_qualified_array): Fix coarray tokens for module ↵Tobias Burnus6-8/+57
coarrays with -fcoarray=lib. 2015-01-08 Tobias Burnus <burnus@net-b.de> * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens for module coarrays with -fcoarray=lib. (get_proc_pointer_decl): As module variable, make only public when not marked as private. * gfortran.dg/coarray/codimension_2b.f90: New file. * gfortran.dg/coarray/codimension_2.f90: Add it to * dg-extra-sources. * gfortran.dg/coarray/codimension_2.f90: Call its subroutine. From-SVN: r219354
2015-01-08re PR c++/59004 (ICE generated by __func__)Paolo Carlini2-0/+19
2015-01-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59004 * g++.dg/ext/fnname4.C: New. From-SVN: r219353
2015-01-08re PR c++/64462 (ICE while compiling lambda using local constexpr reference ↵Paolo Carlini2-0/+15
variable) 2015-01-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/64462 * g++.dg/cpp0x/constexpr-64462.C: New. From-SVN: r219352
2015-01-08re PR libstdc++/60132 (C++11: lack of is_trivially_copy_constructible)Jonathan Wakely14-15/+42
PR libstdc++/60132 * include/std/type_traits (has_trivial_default_constructor, has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated attribute. * testsuite/20_util/has_trivial_copy_assign/requirements/ explicit_instantiation.cc: Use -Wno-deprecated. * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc: Likewise. * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/requirements/ explicit_instantiation.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/requirements/ typedefs.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/requirements/ explicit_instantiation.c: Likewise. * testsuite/20_util/has_trivial_default_constructor/requirements/ typedefs.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated trait. * testsuite/20_util/tuple/requirements/dr801.cc: Likewise. * testsuite/util/testsuite_common_types.h: Likewise. From-SVN: r219350
2015-01-08libgomp: Fix 32-bit x86 Intel MIC offloading testing.Thomas Schwinge3-2/+6
[...] spawn [...]/build-gcc/gcc/xgcc -B[...]/build-gcc/gcc/ [...]/source-gcc/libgomp/testsuite/libgomp.c/examples-4/e.50.1.c -B[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/ -B[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/.libs -I[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp -I[...]/source-gcc/libgomp/testsuite/.. -march=i486 -fmessage-length=0 -fno-diagnostics-show-caret -fdiagnostics-color=never -B[...]/install/offload-x86_64-intelmicemul-linux-gnu/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0 -B[...]/install/offload-x86_64-intelmicemul-linux-gnu/bin -fopenmp -O2 -L[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/.libs -lm -m32 -o ./e.50.1.exe PASS: libgomp.c/examples-4/e.50.1.c (test for excess errors) Setting LD_LIBRARY_PATH to .:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../liboffloadmic/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../liboffloadmic/plugin/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../libstdc++-v3/src/.libs:[...]/install/offload-x86_64-intelmicemul-linux-gnu/lib64:[...]/install/offload-x86_64-intelmicemul-linux-gnu/lib:[...]/build-gcc/gcc:[...]/build-gcc/gcc/32:.:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../liboffloadmic/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../liboffloadmic/plugin/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/32/libgomp/../libstdc++-v3/src/.libs:[...]/install/offload-x86_64-intelmicemul-linux-gnu/lib64:[...]/install/offload-x86_64-intelmicemul-linux-gnu/lib:[...]/build-gcc/gcc:[...]/build-gcc/gcc/32:[...]/build-gcc/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libsanitizer/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libvtv/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libcilkrts/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/liboffloadmic/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libssp/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libgomp/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libitm/.libs:[...]/build-gcc/x86_64-unknown-linux-gnu/libatomic/.libs:[...]/build-gcc/./gcc:[...]/build-gcc/./prev-gcc spawn [open ...] /tmp/offload_WCXKRZ/offload_target_main: error while loading shared libraries: liboffloadmic_target.so.5: wrong ELF class: ELFCLASS64 WARNING: program timed out. FAIL: libgomp.c/examples-4/e.50.1.c execution test [...] $ find -name liboffloadmic_target.so.5 ./install/offload-x86_64-intelmicemul-linux-gnu/lib64/liboffloadmic_target.so.5 ./install/offload-x86_64-intelmicemul-linux-gnu/lib32/liboffloadmic_target.so.5 ./build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/liboffloadmic/.libs/liboffloadmic_target.so.5 ./build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/liboffloadmic/.libs/liboffloadmic_target.so.5 This is a "standard" GCC configuration: x86_64-intelmicemul-linux-gnu with (default) multilibs enabled. libgomp/ * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add "$tgt_dir/lib32". * configure: Regenerate. From-SVN: r219349
2015-01-08libgomp: Fix "intelmic" offloading in build-tree testing.Thomas Schwinge2-2/+6
libgomp/ * testsuite/lib/libgomp.exp (libgomp_init): Correctly match "intelmic" in $offload_targets. From-SVN: r219348
2015-01-08re PR c++/60753 (Deleted definition of an explicit function template ↵Paolo Carlini4-22/+43
specialization, following a declaration, incorrectly accepted) /cp 2015-01-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60753 * decl.c (grokfndecl): Add bool parameter. (grokdeclarator): Adjust calls. (start_decl): Don't set DECL_DELETED_FN here. /testsuite 2015-01-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60753 * g++.dg/cpp0x/deleted10.C: New. From-SVN: r219347
2015-01-08Make sure that OMP builtins are available in offloading compilers.Thomas Schwinge3-2/+10
gcc/ * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi for registering builtins. * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't add -fopenmp to the argv_obstack used when invoking compile_for_target. From-SVN: r219346
2015-01-08intelmic-mkoffload: Deal with linker defaulting to 32-bit x86 mode.Thomas Schwinge2-4/+16
... which explicitly has to be switched into 64-bit x86_64 mode. gcc/ * config/i386/intelmic-mkoffload.c (compile_for_target): Always add "-m32" or "-m64" to argv_obstack. (generate_host_descr_file): Likewise, when invoking host_compiler. (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking ld. From-SVN: r219345
2015-01-08liboffloadmic/plugin: Depend on libgomp being built.Thomas Schwinge3-2/+8
[...] Making all in plugin make[6]: Entering directory `[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/liboffloadmic/plugin' [...] [...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/./gcc/xg++ -B[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/./gcc/ -nostdinc++ -nostdinc++ -I[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/include/x86_64-intelmicemul-linux-gnu -I[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/include -I[...]/source-gcc/libstdc++-v3/libsupc++ -I[...]/source-gcc/libstdc++-v3/include/backward -I[...]/source-gcc/libstdc++-v3/testsuite/util -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/src -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/src/.libs -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/libsupc++/.libs -B/x86_64-intelmicemul-linux-gnu/bin/ -B/x86_64-intelmicemul-linux-gnu/lib/ -isystem /x86_64-intelmicemul-linux-gnu/include -isystem /x86_64-intelmicemul-linux-gnu/sys-include -m32 -L./../.libs -L./../../libgomp/.libs -loffloadmic_target -lcoi_device -lmyo-service -lgomp -rdynamic ../ofldbegin.o offload_target_main.o ../ofldend.o -o offload_target_main /usr/bin/ld: cannot find -lgomp collect2: error: ld returned 1 exit status * Makefile.def (dependencies) <all-target-liboffloadmic>: Depend on all-target-libgomp. * Makefile.in: Regenerate. From-SVN: r219344
2015-01-08* include/bits/hashtable_policy.h: Use __bool_constant.Jonathan Wakely2-4/+5
From-SVN: r219343
2015-01-08sh-mem.cc: Use constant as second operand when emitting tstsi_t insns.Oleg Endo2-4/+9
gcc/ * config/sh/sh-mem.cc: Use constant as second operand when emitting tstsi_t insns. From-SVN: r219342
2015-01-08re PR target/55212 ([SH] Switch to LRA)Oleg Endo2-3/+14
gcc/ PR target/55212 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of constant load if constant operand fits into I08. From-SVN: r219341
2015-01-08re PR sanitizer/64336 (Template functions are not instrumented at -O0 and -Og)Jakub Jelinek2-8/+38
PR sanitizer/64336 * tree.c (build2_stat): Fix up initialization of TREE_READONLY and TREE_THIS_VOLATILE for MEM_REFs. (build5_stat): Fix up initialization of TREE_READONLY and TREE_THIS_VOLATILE for TARGET_MEM_REFs. From-SVN: r219339
2015-01-08re PR target/64533 ([SH] alloca generates unsafe code)Kaz Kojima2-2/+9
PR target/64533 * config/sh/sh.md (*addsi3_compact): Use u constraint instead of r for the second alternative of the destination operand. From-SVN: r219338
2015-01-08re PR target/36557 (-m32 -mpowerpc64 produces better code than -m64 for a!=0)Segher Boessenkool2-0/+65
PR target/36557 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New. From-SVN: r219336
2015-01-07invoke.texi ([-fvtable-verify]): Fix markup on option keywords.Sandra Loosemore2-6/+13
2015-01-07 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/invoke.texi ([-fvtable-verify]): Fix markup on option keywords. ([-fivar-visibility], [-fvisibility]): Likewise. From-SVN: r219335
2015-01-08Add new jit testcase accidentally omitted from r219320David Malcolm1-0/+223
From-SVN: r219334
2015-01-08jit: Add checking for dereference of void *David Malcolm5-0/+118
gcc/jit/ChangeLog: * jit-recording.h (gcc::jit::recording::type::is_void): New virtual function. (gcc::jit::recording::memento_of_get_type::is_void): New function, overriding default implementation. * libgccjit.c (gcc_jit_rvalue_dereference): Verify that the underlying type is not "void". gcc/testsuite/ChangeLog: * jit.dg/test-error-dereferencing-void-ptr.c: New test case. From-SVN: r219333
2015-01-08Daily bump.GCC Administrator1-1/+1
From-SVN: r219330
2015-01-07invoke.texi: Fix incorrect uses of @samp markup throughout the file where ↵Sandra Loosemore2-112/+117
@code... 2015-01-07 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/invoke.texi: Fix incorrect uses of @samp markup throughout the file where @code, @command, etc is more appropriate. From-SVN: r219322
2015-01-07API extension: add GCC_JIT_UNARY_OP_ABS to enum gcc_jit_unary_opDavid Malcolm9-311/+387
gcc/jit/ChangeLog: * docs/topics/expressions.rst (Unary Operations): Add GCC_JIT_UNARY_OP_ABS. * jit-playback.c (gcc::jit::playback::context::new_unary_op): Likewise. * jit-recording.c (unary_op_strings): Likewise. * libgccjit.c (gcc_jit_context_new_unary_op): Update checking of "op" to reflect addition of GCC_JIT_UNARY_OP_ABS. * libgccjit.h (enum gcc_jit_unary_op): Add GCC_JIT_UNARY_OP_ABS. * docs/_build/texinfo/libgccjit.texi: Regenerate. gcc/testsuite/ChangeLog: * jit.dg/test-expressions.c (make_tests_of_unary_ops): Add test of GCC_JIT_UNARY_OP_ABS. (verify_unary_ops): Likewise. From-SVN: r219321
2015-01-07Add test of handling arithmetic-overflow from JITDavid Malcolm4-0/+20
gcc/testsuite/ChangeLog: * jit.dg/test-arith-overflow.c: New test case. * jit.dg/all-non-failing-tests.h: Add test-arith-overflow.c. * jit.dg/test-combination.c (create_code): Likewise. (verify_code): Likewise. * jit.dg/test-threads.c (testcases): Likewise. From-SVN: r219320
2015-01-07Fix typo in jit-recording.hDavid Malcolm2-1/+6
gcc/jit/ChangeLog: * jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix typo in comment. From-SVN: r219319
2015-01-07jit.exp: support C++ testcasesDavid Malcolm6-17/+115
gcc/jit/ChangeLog: * TODO.rst (Test suite): Remove item about running C++ testcases. * docs/internals/index.rst (Working on the JIT library): Add "c++" to the enabled languages in the suggested "configure" invocation, and add a description of why this is necessary. * docs/_build/texinfo/libgccjit.texi: Regenerate. gcc/testsuite/ChangeLog: * jit.dg/jit.exp: Load wrapper.exp with %{tool} set to "g++" rather than "jit". Load g++.exp, and call g++_init. Run test-*.cc files within the testsuite and *.cc files within docs/examples. (jit-dg-test): Drop the addition of -fgnu89-inline to DEFAULT_CFLAGS in favor of adding it to additional_flags, only doing it when compiling C testcases (since g++ does not handle it). Reset "orig_environment_saved" so that LD_LIBRARY_PATH is restored to the value after g++_init ran, rather than the value before g++_init ran. Return a list of $comp_output $output_file, as dg-test assumes. From-SVN: r219318
2015-01-07Makefile.am: Compile del_ops.cc as C++14.Jonathan Wakely3-0/+17
* libsupc++/Makefile.am: Compile del_ops.cc as C++14. * libsupc++/Makefile.in: Regenerate. From-SVN: r219317
2015-01-07re PR go/61204 (gccgo: ICE in in fold_convert_loc [GoSmith])Chris Manghane2-5/+19
PR go/61204 * go-gcc.cc (Gcc_backend::temporary_variable): Don't initialize zero-sized variable. From-SVN: r219316
2015-01-07jit.exp: add __func__ to help test-{combination|threads}.cDavid Malcolm2-31/+62
gcc/testsuite/ChangeLog: * jit.dg/harness.h (CHECK_NON_NULL): Add __func__ to output, to make it easier to figure out the origin of each test result when running test-combination.c and test-threads.c. (CHECK_VALUE): Likewise. (CHECK_DOUBLE_VALUE): Likewise. (CHECK_STRING_VALUE): Likewise. (CHECK_STRING_STARTS_WITH): Likewise. (CHECK_STRING_CONTAINS): Likewise. (CHECK): Likewise. (check_string_value): Likewise, add "funcname" param. (check_string_starts_with): Likewise. (check_string_contains): Likewise. From-SVN: r219314
2015-01-07compiler: Don't assign to embedded builtins in imported struct compositeIan Lance Taylor1-2/+4
literals. Fixes https://github.com/golang/go/issues/6832. From-SVN: r219313
2015-01-07jit.exp: Don't drop the extension from the testcase when naming executableDavid Malcolm5-16/+39
gcc/jit/ChangeLog: * docs/internals/index.rst: Update to reflect that built testcases are now test-foo.c.exe, rather than test-foo.exe. * docs/_build/texinfo/libgccjit.texi: Regenerate. gcc/testsuite/ChangeLog: * jit.dg/jit.exp (jit-dg-test): Remove "rootname" call when generating name of built executable. From-SVN: r219312
2015-01-07[multiple changes]Arnaud Charlet9-56/+194
2015-01-07 Robert Dewar <dewar@adacore.com> * sem_warn.adb (Check_One_Unit): Don't give unused entities warning for a package which is used as a generic parameter. 2015-01-07 Bob Duff <duff@adacore.com> * usage.adb (Usage): Correct documentation of -gnatw.f switches. 2015-01-07 Robert Dewar <dewar@adacore.com> * s-fileio.adb: Minor reformatting. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Instantiate_Object): If formal is an anonymous access to subprogram, replace its formals with new entities when building the object declaration, both if actual is present and when it is defaulted. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Assignment): If left-hand side is a view conversion and type of expression has invariant, apply invariant check on expression. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Create_Constrained_Components): A call to Gather_Components may detect an error if an inherited discriminant that controls a variant is non-static. * sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to Gather_Components may report an error if an inherited discriminant in a variant in non-static. * sem_util.adb (Gather_Components): If a non-static discriminant is inherited do not report error here, but let caller handle it. (Find_Actual): Small optimization. From-SVN: r219297
2015-01-07[multiple changes]Arnaud Charlet10-23/+91
2015-01-07 Bob Duff <duff@adacore.com> * usage.adb (Usage): Document -gnatw.f switch. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb: Code clean up and minor reformatting. 2015-01-07 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Expand_N_Type_Conversion): Add guard for Raise_Accessibility_Error call. * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add documentation on handling of invalid digits in based constants. * s-fatgen.ads: Minor reformatting. * sem_attr.adb (Analyze_Attribute, case Unrestricted_Access): Avoid noting bogus modification for Valid test. * snames.ads-tmpl (Name_Attr_Long_Float): New Name. * einfo.ads: Minor reformatting. * sem_warn.adb: Minor comment clarification. * sem_ch12.adb: Minor reformatting. From-SVN: r219296
2015-01-07Minor reformatting.Arnaud Charlet1-3/+1
From-SVN: r219295
2015-01-07[multiple changes]Arnaud Charlet7-49/+178
2015-01-07 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_Predicated_Loop): Handle properly loops over static predicates when the loop parameter specification carries a Reverse indicator. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Instantiate_Object): If formal has a default, actual is missing and formal has an anonymous access type, copy access definition in full so that tree for instance is properly formatted for ASIS use. 2015-01-07 Bob Duff <duff@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Give a warning for P'Access, where P is a subprogram in the same package as the P'Access, and the P'Access is evaluated at elaboration time, and occurs before the body of P. For example, "X : T := P'Access;" would allow a subsequent call to X.all to be an access-before-elaboration error; hence the warning. This warning is enabled by the -gnatw.f switch. * opt.ads (Warn_On_Elab_Access): New flag for warning switch. * warnsw.adb (Set_Dot_Warning_Switch): Set Warn_On_Elab_Access. * gnat_ugn.texi: Document the new warning. From-SVN: r219293
2015-01-07lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded cross ref ↵Johannes Kanig2-4/+17
files. 2015-01-07 Johannes Kanig <kanig@adacore.com> * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded cross ref files. From-SVN: r219292
2015-01-07[multiple changes]Arnaud Charlet21-653/+331
2015-01-07 Robert Dewar <dewar@adacore.com> * s-taprop-linux.adb, clean.adb: Minor reformatting. 2015-01-07 Arnaud Charlet <charlet@adacore.com> * s-tassta.adb: Relax some overzealous assertions. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Return_Type): An call that returns a limited view of a type is legal when context is a thunk generated for operation inherited from an interface. * exp_ch6.adb (Expand_Simple_Function_Return): If context is a thunk and return type is an incomplete type do not continue expansion; thunk will be fully elaborated when generating code. 2015-01-07 Doug Rupp <rupp@adacore.com> * s-osinte-mingw.ads (LARGE_INTEGR): New subtype. (QueryPerformanceFrequency): New imported procedure. * s-taprop-mingw.adb (RT_Resolution): Call above and return resolution vice a hardcoded value. * s-taprop-solaris.adb (RT_Resolution): Call clock_getres and return resolution vice a hardcoded value. * s-linux-android.ads (clockid_t): New subtype. * s-osinte-aix.ads (clock_getres): New imported subprogram. * s-osinte-android.ads (clock_getres): Likewise. * s-osinte-freebsd.ads (clock_getres): Likewise. * s-osinte-solaris-posix.ads (clock_getres): Likewise. * s-osinte-darwin.ads (clock_getres): New subprogram. * s-osinte-darwin.adb (clock_getres): New subprogram. * thread.c (__gnat_clock_get_res) [__APPLE__]: New function. * s-taprop-posix.adb (RT_Resolution): Call clock_getres to calculate resolution vice hard coded value. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * exp_util.adb (Make_CW_Equivalent_Type): If root type is a limited view, use non-limited view when available to create equivalent record type. 2015-01-07 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Remove command Sync and any data and processing related to this command. Remove project processing for gnatstack. * prj-attr.adb: Remove package Synchonize and its attributes. From-SVN: r219291
2015-01-07[multiple changes]Arnaud Charlet4-1/+36
2015-01-07 Vincent Celier <celier@adacore.com> * clean.adb: Minor error message change. 2015-01-07 Tristan Gingold <gingold@adacore.com> PR ada/64349 * env.c (__gnat_environ): Adjust for darwin9/darwin10. 2015-01-07 Javier Miranda <miranda@adacore.com> * sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq protect the frontend against never ending recursion caused by circularities in the sources. From-SVN: r219290
2015-01-07[multiple changes]Arnaud Charlet16-24/+77
2015-01-07 Robert Dewar <dewar@adacore.com> * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting. 2015-01-07 Doug Rupp <rupp@adacore.com> * s-linux.ads (clockid_t): New subtype. * s-osinte-linux.ads (pragma Linker Options): Add -lrt. (clockid_t): New subtype. (clock_getres): Import system call. * s-taprop-linux.adb (System.OS_Constants): With and rename. (RT_Resolution): Remove hardcoded value and call clock_getres. * s-linux-sparc.ads, s-linux-mipsel.ads, s-linux-hppa.ads, s-linux-alpha.ads, s-linux-x32.ads (clockid_t): Add new subtype. 2015-01-07 Robert Dewar <dewar@adacore.com> * sem_warn.adb (Check_One_Unit): Guard against context item with no Entity field. From-SVN: r219289
2015-01-07[multiple changes]Arnaud Charlet13-17/+78
2015-01-07 Vincent Celier <celier@adacore.com> * clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete. * make.adb (Initialize): Warn that 'gnatmake -P' is obsolete. 2015-01-07 Vincent Celier <celier@adacore.com> * prj-conf.adb (Parse_Project_And_Apply_Config): Always finalize errors/warnings in the first parsing of the project files, to display the warnings when there is no errors. 2015-01-07 Tristan Gingold <gingold@adacore.com> * i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target. 2015-01-07 Doug Rupp <rupp@adacore.com> * s-taprop-vxworks.adb (Stop_All_Tasks): Pass return value from Int_Lock as parameter to Int_Unlock. * s-osinte-vxworks.ads (Int_Unlock): Add parameter. * s-vxwext.ads (Int_Unlock): Likewise. * s-vxwext-kernel.adb (intUnlock, Int_Unlock): Likewise. * s-vxwext-kernel.ads (Int_Unlock): Likewise. * s-vxwext-rtp.adb (Int_Unlock): Likewise. * s-vxwext-rtp.ads (Int_Unlock): Likewise. 2015-01-07 Pierre-Marie de Rodat <derodat@adacore.com> * exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we keep ___XP suffixes From-SVN: r219288
2015-01-07[multiple changes]Arnaud Charlet8-27/+149
2015-01-07 Tristan Gingold <gingold@adacore.com> * i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to handle overlap. 2015-01-07 Eric Botcazou <ebotcazou@adacore.com> * sem_ch3.adb (Analyze_Full_Type_Declaration): Do not automatically set No_Strict_Aliasing on access types. * fe.h (No_Strict_Aliasing_CP): Declare. * gcc-interface/trans.c (gigi): Force flag_strict_aliasing to 0 if No_Strict_Aliasing_CP is set. 2015-01-07 Johannes Kanig <kanig@adacore.com> * sem_ch8.adb (Analyze_Subprogram_Renaming) do not build function wrapper in gnatprove mode when the package is externally axiomatized. 2015-01-07 Jose Ruiz <ruiz@adacore.com> * a-reatim.adb (Time_Of): Reduce the number of spurious overflows in intermediate computations when the parameters have different signs. 2015-01-07 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Build_Init_Procedure): For derived types, improve the code which takes care of identifying and moving to the beginning of the init-proc the call to the init-proc of the parent type. From-SVN: r219287
2015-01-07trans.c (gnat_to_gnu, [...]): Elaborate the expression as part of the same ↵Olivier Hainque2-5/+19
stmt group as the actions. 2015-01-07 Olivier Hainque <hainque@adacore.com> * gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>): Elaborate the expression as part of the same stmt group as the actions. From-SVN: r219286
2015-01-07[multiple changes]Arnaud Charlet3-6/+22
2015-01-07 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor error message change. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization): Following AI05-028, the pragam applies legally to any composite type. From-SVN: r219285
2015-01-07[multiple changes]Arnaud Charlet6-65/+41
2015-01-07 Arnaud Charlet <charlet@adacore.com> * s-osinte-vxworks.adb, s-osinte-vxworks.ads (sigwait, sigwaitinfo): Removed, not needed after all on any VxWorks configurations. 2015-01-07 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting. From-SVN: r219284
2015-01-07[multiple changes]Arnaud Charlet3-2/+19
2015-01-07 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Expand_Interface_Conversion): Adding missing generation of accessibility check. 2015-01-07 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Derived_Type_Declaration): In the case of an illegal completion from a class- wide type, set etype of the derived type properly to prevent cascaded errors. From-SVN: r219283
2015-01-07prj.ads, [...]: Minor reformatting.Robert Dewar10-40/+288
2015-01-07 Robert Dewar <dewar@adacore.com> * prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor reformatting. 2015-01-07 Robert Dewar <dewar@adacore.com> * restrict.adb (Check_Restriction_No_Use_Of_Attribute): New procedure. (OK_No_Use_Of_Entity_Name): New function. (Set_Restriction_No_Use_Of_Entity): New procedure. * restrict.ads (Check_Restriction_No_Use_Of_Attribute): New procedure. (OK_No_Use_Of_Entity_Name): New function. (Set_Restriction_No_Use_Of_Entity): New procedure. * sem_ch8.adb (Find_Direct_Name): Add check for violation of No_Use_Of_Entity. * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Add processing for new restriction No_Use_Of_Entity. From-SVN: r219282
2015-01-07freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component ↵Eric Botcazou2-9/+12
type as to Has_Atomic_Components type. 2015-01-07 Eric Botcazou <ebotcazou@adacore.com> * freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component type as to Has_Atomic_Components type. Remove useless test on Is_Aliased component type. From-SVN: r219281
2015-01-072015-01-07 Hristian Kirtchev <kirtchev@adacore.com>Hristian Kirtchev35-999/+2281
* alloc.ads Alphabetize several declarations. Add constants Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment. * atree.adb Add with and use clauses for Opt. (Allocate_Initialize_Node): Mark a node as ignored Ghost if it is created in an ignored Ghost region. (Ekind_In): New variant. (Is_Ignored_Ghost_Node): New routine. (Set_Is_Ignored_Ghost_Node): New routine. * atree.adb Aplhabetize several subprograms declarations. Flag Spare0 is now known as Is_Ignored_Ghost_Node. (Ekind_In): New variant. (Is_Ignored_Ghost_Node): New routine. (Set_Is_Ignored_Ghost_Node): New routine. * einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code. (Contains_Ignored_Ghost_Code): New routine. (Set_Contains_Ignored_Ghost_Code): New routine. (Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity): It is now possible to set this property on an unanalyzed entity. (Write_Entity_Flags): Output the status of flag Contains_Ignored_Ghost_Code. * einfo.ads New attribute Contains_Ignored_Ghost_Code along with usage in nodes. (Contains_Ignored_Ghost_Code): New routine along with pragma Inline. (Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline. * exp_ch3.adb Add with and use clauses for Ghost. (Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit. Set the Ghost_Mode in effect. (Restore_Globals): New routine. * exp_ch7.adb (Process_Declarations): Do not process a context that invoves an ignored Ghost entity. * exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost construct that has been rewritten as a null statement. * exp_disp.adb Add with and use clauses for Ghost. (Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set the Ghost_Mode in effect. (Restore_Globals): New routine. * exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity does not require any clean up. Add two missing cases that deal with block statements. * freeze.adb Add with and use clauses for Ghost. (Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit. Set the Ghost_Mode in effect. (Restore_Globals): New routine. * frontend.adb Add with and use clauses for Ghost. Remove any ignored Ghost code from all units that qualify. * ghost.adb New unit. * ghost.ads New unit. * gnat1drv.adb Add with clause for Ghost. Initialize and lock the table in package Ghost. * lib.ads: Alphabetize several subprogram declarations. * lib-xref.adb (Output_References): Do not generate reference information for ignored Ghost entities. * opt.ads Add new type Ghost_Mode_Type and new global variable Ghost_Mode. * rtsfind.adb (Load_RTU): Provide a clean environment when loading a runtime unit. * sem.adb (Analyze): Capture/restore the value of Ghost_Mode on entry/exit as the node may set a different mode. (Do_Analyze): Capture/restore the value of Ghost_Mode on entry/exit as the unit may be withed from a unit with a different Ghost mode. * sem_ch3.adb Add with and use clauses for Ghost. (Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl, Analyze_Number_Declaration, Analyze_Private_Extension_Declaration, Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. (Array_Type_Declaration): The implicit base type inherits the "ghostness" from the array type. (Derive_Subprogram): The alias inherits the "ghostness" from the parent subprogram. (Make_Implicit_Base): The implicit base type inherits the "ghostness" from the parent type. * sem_ch5.adb Add with and use clauses for Ghost. (Analyze_Assignment): Set the Ghost_Mode in effect. * sem_ch6.adb Add with and use clauses for Ghost. (Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call, Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. * sem_ch7.adb Add with and use clauses for Ghost. (Analyze_Package_Body_Helper, Analyze_Package_Declaration, Analyze_Private_Type_Declaration): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. * sem_ch8.adb Add with and use clauses for Ghost. (Analyze_Exception_Renaming, Analyze_Generic_Renaming, Analyze_Object_Renaming, Analyze_Package_Renaming, Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. (Find_Type): Check the Ghost context of a type. * sem_ch11.adb Add with and use clauses for Ghost. (Analyze_Exception_Declaration): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. * sem_ch12.adb Add with and use clauses for Ghost. (Analyze_Generic_Package_Declaration, Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect. Mark the entity as Ghost when there is a Ghost_Mode in effect. * sem_prag.adb Add with and use clauses for Ghost. (Analyze_Pragma): Ghost-related checks are triggered when there is a Ghost mode in effect. (Create_Abstract_State): Mark the entity as Ghost when there is a Ghost_Mode in effect. * sem_res.adb Add with and use clauses for Ghost. (Check_Ghost_Context): Removed. * sem_util.adb (Check_Ghost_Completion): Removed. (Check_Ghost_Derivation): Removed. (Incomplete_Or_Partial_View): Add a guard in case the entity has not been analyzed yet and does carry a scope. (Is_Declaration): New routine. (Is_Ghost_Entity): Removed. (Is_Ghost_Statement_Or_Pragma): Removed. (Is_Subject_To_Ghost): Removed. (Set_Is_Ghost_Entity): Removed. (Within_Ghost_Scope): Removed. * sem_util.adb (Check_Ghost_Completion): Removed. (Check_Ghost_Derivation): Removed. (Is_Declaration): New routine. (Is_Ghost_Entity): Removed. (Is_Ghost_Statement_Or_Pragma): Removed. (Is_Subject_To_Ghost): Removed. (Set_Is_Ghost_Entity): Removed. (Within_Ghost_Scope): Removed. * sinfo.ads Add a section on Ghost mode. * treepr.adb (Print_Header_Flag): New routine. (Print_Node_Header): Factor out code. Output flag Is_Ignored_Ghost_Node. * gcc-interface/Make-lang.in: Add dependency for unit Ghost. From-SVN: r219280