gcc.git
9 years agoAdded PR libobjc/51891.
Mike Stump [Fri, 9 Jan 2015 18:12:51 +0000 (18:12 +0000)]
Added PR libobjc/51891.

From-SVN: r219399

9 years agore PR libstdc++/64476 (std::uninitialized_copy tests assignability the wrong way...
Jonathan Wakely [Fri, 9 Jan 2015 18:02:47 +0000 (18:02 +0000)]
re PR libstdc++/64476 (std::uninitialized_copy tests assignability the wrong way, resulting in performance pessimization)

PR libstdc++/64476
* include/bits/stl_uninitialized.h (uninitialized_copy): Fix
is_assignable arguments.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
New.

From-SVN: r219398

9 years agoivars.c: Add a check for classes without instance variables...
Dimitris Papavasiliou [Fri, 9 Jan 2015 17:55:57 +0000 (17:55 +0000)]
ivars.c: Add a check for classes without instance variables...

2015-01-09  Dimitris Papavasiliou  <dpapavas@gmail.com>

* ivars.c: Add a check for classes without instance
variables, which have a NULL ivar list pointer.

2015-01-09  Dimitris Papavasiliou  <dpapavas@gmail.com>

* objc.dg/gnu-api-2-class.m: Add a test case
for the above change.

From-SVN: r219396

9 years agoPR jit/64206: delay cleanup of tempdir if the user has requested debuginfo
David Malcolm [Fri, 9 Jan 2015 17:01:04 +0000 (17:01 +0000)]
PR jit/64206: delay cleanup of tempdir if the user has requested debuginfo

gcc/jit/ChangeLog:
PR jit/64206
* docs/internals/test-hello-world.exe.log.txt: Update, the log now
shows tempdir creation/cleanup.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-logging.h (class gcc::jit::log_user): Add gcc::jit::tempdir
to the list of subclasses in the comment.
* jit-playback.c (gcc::jit::playback::context::context): Add a
comment clarifying when the tempdir gets cleaned up.
(gcc::jit::playback::context::compile): Pass the context's logger,
if any, to the tempdir.
(gcc::jit::playback::context::dlopen_built_dso): When creating the
gcc::jit::result, if GCC_JIT_BOOL_OPTION_DEBUGINFO is set, hand
over ownership of the tempdir to it.
* jit-result.c: Include "jit-tempdir.h".
(gcc::jit::result::result): Add tempdir param, saving it as
m_tempdir.
(gcc::jit::result::~result): Delete m_tempdir.
* jit-result.h (gcc::jit::result::result): Add tempdir param.
(gcc::jit::result::m_tempdir): New field.
* jit-tempdir.c (gcc::jit::tempdir::tempdir): Add logger param;
add JIT_LOG_SCOPE.
(gcc::jit::tempdir::create): Add JIT_LOG_SCOPE to log entry/exit,
and log m_path_template and m_path_tempdir.
(gcc::jit::tempdir::~tempdir): Add JIT_LOG_SCOPE to log
entry/exit, and log the unlink and rmdir calls.
* jit-tempdir.h: Include "jit-logging.h".
(class gcc::jit::tempdir): Make this be a subclass of log_user.
(gcc::jit::tempdir::tempdir): Add logger param.
* notes.txt: Update to show the two possible places where the
tempdir can be cleaned up.

From-SVN: r219395

9 years agounwind-arm-common.h: Revert previous commit.
Andreas Tobler [Fri, 9 Jan 2015 14:22:19 +0000 (15:22 +0100)]
unwind-arm-common.h: Revert previous commit.

gcc:
    * ginclude/unwind-arm-common.h: Revert previous commit.

libstdc++-v3:
    * libsupc++/unwind-cxx.h: Revert previous commit.

From-SVN: r219392

9 years agoconfigure.ac: Don't add ${libgcj} for arm*-*-freebsd*.
Andreas Tobler [Fri, 9 Jan 2015 14:06:02 +0000 (15:06 +0100)]
configure.ac: Don't add ${libgcj} for arm*-*-freebsd*.

toplevel:

    * configure.ac: Don't add ${libgcj} for arm*-*-freebsd*.
    * configure: Regenerate.
gcc:
    * config.gcc (arm*-*-freebsd*): New configuration.
    * config/arm/freebsd.h: New file.
    * config.host: Add extra components for arm*-*-freebsd*.
    * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
    * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.

libgcc:

    * config.host (arm*-*-freebsd*): Add new configuration for
    arm*-*-freebsd*.
    * config/arm/freebsd-atomic.c: New file.
    * config/arm/t-freebsd: Likewise.
    * config/arm/unwind-arm.h: Add __FreeBSD__ to the list of
    'PC-relative indirect' OS's.

libatomic:

    * configure.tgt: Exclude arm*-*-freebsd* from try_ifunc.

libstdc++-v3:

    * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.

From-SVN: r219388

9 years agoRTEMS: Add e6500 multilibs for PowerPC
Sebastian Huber [Fri, 9 Jan 2015 13:57:55 +0000 (13:57 +0000)]
RTEMS: Add e6500 multilibs for PowerPC

Use 32-bit instructions only since currently there is no demand for a
larger address space.  Provide one multilib with FPU and AltiVec support
and one without.

gcc/ChangeLog

* config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
for -mcpu=e6500.
* config/rs6000/t-rtems: Add e6500 multilibs.

From-SVN: r219387

9 years agoRTEMS: Fix MPC8540 multilibs for PowerPC
Sebastian Huber [Fri, 9 Jan 2015 13:50:08 +0000 (13:50 +0000)]
RTEMS: Fix MPC8540 multilibs for PowerPC

GCC generates SPE instructions even if -msoft-float is specified.
Explicitly add -mno-spe to prevent generation of SPE instructions.  This
multilib variant must not lead to a usage of the SPE.

gcc/ChangeLog

* config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
MPC8540.

From-SVN: r219385

9 years agoRTEMS: Use MULTILIB_REQUIRED for PowerPC
Sebastian Huber [Fri, 9 Jan 2015 13:48:03 +0000 (13:48 +0000)]
RTEMS: Use MULTILIB_REQUIRED for PowerPC

gcc/ChangeLog

* config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
MULTILIB_EXCEPTIONS.

From-SVN: r219384

9 years agoRTEMS: Use MULTILIB_REQUIRED for ARM
Sebastian Huber [Fri, 9 Jan 2015 13:41:16 +0000 (13:41 +0000)]
RTEMS: Use MULTILIB_REQUIRED for ARM

gcc/ChangeLog

* config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
MULTILIB_EXCEPTIONS.

From-SVN: r219383

9 years agoRTEMS: Rename ARM target config files
Sebastian Huber [Fri, 9 Jan 2015 13:38:21 +0000 (13:38 +0000)]
RTEMS: Rename ARM target config files

Now that we only have the EABI configuration for RTEMS rename the files
to match the pattern used for the other RTEMS targets.

gcc/ChangeLog

* config/arm/t-rtems-eabi: Rename to...
* config/arm/t-rtems: ...this.
* config/arm/rtems-eabi.h: Rename to...
* config/arm/rtems.h: ...this.
* config.gcc (arm*-*-rtems*): Reflect changes above.

From-SVN: r219382

9 years agotypeof-2.c: Add checks for non-atomic types.
Sebastian Huber [Fri, 9 Jan 2015 13:26:26 +0000 (13:26 +0000)]
typeof-2.c: Add checks for non-atomic types.

gcc/testsuite/gcc.dg/typeof-2.c

gcc/testsuite/ChangeLog

* gcc.dg/typeof-2.c: Add checks for non-atomic types.

From-SVN: r219381

9 years agore PR tree-optimization/64410 (gcc 25% slower than clang 3.5 for adding complex numbers)
Richard Biener [Fri, 9 Jan 2015 11:14:55 +0000 (11:14 +0000)]
re PR tree-optimization/64410 (gcc 25% slower than clang 3.5 for adding complex numbers)

2015-01-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/64410
* tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
on the LHS.
(execute_update_addresses_taken): Deal with that.
* tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
loads/stores for complex variables.

* g++.dg/vect/pr64410.cc: New testcase.

From-SVN: r219380

9 years agoIPA ICF: compare_operand is split to multiple functions.
Martin Liska [Fri, 9 Jan 2015 10:45:18 +0000 (11:45 +0100)]
IPA ICF: compare_operand is split to multiple functions.

* ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
name comparison.
(func_checker::compare_memory_operand): New function.
(func_checker::compare_operand): Split case to newly
added functions.
(func_checker::compare_cst_or_decl): New function.
(func_checker::compare_gimple_call): Identify
memory operands.
(func_checker::compare_gimple_assign): Likewise.
* ipa-icf-gimple.h: New function.

From-SVN: r219379

9 years agoFix for ipa/PR64503
Martin Liska [Fri, 9 Jan 2015 10:38:49 +0000 (11:38 +0100)]
Fix for ipa/PR64503

PR ipa/64503
* sreal.c (sreal::dump): Change unsigned format to signed for
m_exp value.
(sreal::to_double): Replace exp2 with scalbln.

From-SVN: r219378

9 years agoIPA ICF: target and optimization flags comparison.
Martin Liska [Fri, 9 Jan 2015 10:33:00 +0000 (11:33 +0100)]
IPA ICF: target and optimization flags comparison.

* cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
* ipa-icf.c (sem_function::equals_private): Add support for target and
(sem_item_optimizer::merge_classes): Remove redundant function
optimization flags comparison.
* tree.h (target_opts_for_fn): New function.
* gcc.dg/ipa/ipa-icf-32.c: New test.

From-SVN: r219377

9 years agoFix gcc_assert in expand_omp_for_static_chunk
Tom de Vries [Fri, 9 Jan 2015 09:19:44 +0000 (09:19 +0000)]
Fix gcc_assert in expand_omp_for_static_chunk

2015-01-09  Tom de Vries  <tom@codesourcery.com>

* omp-low.c (expand_omp_for_static_chunk): Fix assert.

From-SVN: r219376

9 years agore PR target/64348 (Case scal-to-vec1.c failed on arm-linux-gnueabi with -fPIC)
Kito Cheng [Fri, 9 Jan 2015 06:19:32 +0000 (06:19 +0000)]
re PR target/64348 (Case scal-to-vec1.c failed on arm-linux-gnueabi with -fPIC)

2015-01-09  Kito Cheng  <kito@0xlab.org>

PR rtl-optimization/64348
* lra-constraints.c (split_reg): Fix caller-save store/restore
instruction generation.

From-SVN: r219375

9 years agore PR libstdc++/64239 (regex_iterator::operator= should copy match_results::position)
Tim Shen [Fri, 9 Jan 2015 03:58:59 +0000 (03:58 +0000)]
re PR libstdc++/64239 (regex_iterator::operator= should copy match_results::position)

PR libstdc++/64239
* include/bits/regex.h (match_results<>::swap): Use std::swap
instead of swap.
* include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
Likewise.
* testsuite/28_regex/match_results/swap.cc: New testcase.

From-SVN: r219373

9 years agore PR gcov-profile/61790 (gcov-tool.c uses atoll)
John David Anglin [Fri, 9 Jan 2015 00:50:49 +0000 (00:50 +0000)]
re PR gcov-profile/61790 (gcov-tool.c uses atoll)

PR gcov-profile/61790
* gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
long long.  Fallback to int64_t if host doesn't have long long and
use strtol if int64_t is long.  Otherwise, use sscanf for conversion.

From-SVN: r219372

9 years agoDaily bump.
GCC Administrator [Fri, 9 Jan 2015 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r219371

9 years agotsan_barrier.h: New.
Bernd Edlinger [Thu, 8 Jan 2015 22:17:49 +0000 (22:17 +0000)]
tsan_barrier.h: New.

2015-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/tsan/tsan_barrier.h: New.
        * c-c++-common/tsan/atomic_stack.c: Reworked to not depend on sleep.
        * c-c++-common/tsan/bitfield_race.c: Likewise.
        * c-c++-common/tsan/fd_pipe_race.c: Likewise.
        * c-c++-common/tsan/mutexset1.c: Likewise.
        * c-c++-common/tsan/race_on_barrier.c: Likewise.
        * c-c++-common/tsan/race_on_mutex.c: Likewise.
        * c-c++-common/tsan/race_on_mutex2.c: Likewise.
        * c-c++-common/tsan/simple_race.c: Likewise.
        * c-c++-common/tsan/simple_stack.c: Likewise.
        * c-c++-common/tsan/sleep_sync.c: Likewise.
        * c-c++-common/tsan/tiny_race.c: Likewise.
        * c-c++-common/tsan/tls_race.c: Likewise.
        * c-c++-common/tsan/write_in_reader_lock.c: Likewise.
        * g++.dg/tsan/aligned_vs_unaligned_race.C: Likewise.
        * g++.dg/tsan/atomic_free.C: Likewise.
        * g++.dg/tsan/atomic_free2.C: Likewise.
        * g++.dg/tsan/cond_race.C: Likewise.
        * g++.dg/tsan/tsan_barrier.h: Copied from c-c++-common/tsan.

From-SVN: r219367

9 years agolibgccjit.h: Fix description of struct gcc_jit_context
David Malcolm [Thu, 8 Jan 2015 22:08:41 +0000 (22:08 +0000)]
libgccjit.h: Fix description of struct gcc_jit_context

gcc/jit/ChangeLog:
* libgccjit.h (struct gcc_jit_context): Rewrite the descriptive
comment.

From-SVN: r219366

9 years agore PR testsuite/62250 (FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib ...
Hans-Peter Nilsson [Thu, 8 Jan 2015 21:59:26 +0000 (21:59 +0000)]
re PR testsuite/62250 (FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib  -O2  -lcaf_single)

PR testsuite/62250
* lib/target-supports.exp (check_effective_target_libatomic_available):
New.
* gfortran.dg/coarray/caf.exp: Only add -latomic for
targets that match effective-target libatomic_available.
* gfortran.dg/coarray_lib_comm_1.f90: Similar.

From-SVN: r219365

9 years agore PR testsuite/62250 (FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib ...
Hans-Peter Nilsson [Thu, 8 Jan 2015 21:57:49 +0000 (21:57 +0000)]
re PR testsuite/62250 (FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib  -O2  -lcaf_single)

PR testsuite/62250
* lib/target-supports.exp (check_effective_target_libatomic_available):
New.
* gfortran.dg/coarray/caf.exp: Only add -latomic for
targets that match effective-target libatomic_available.
* gfortran.dg/coarray_lib_comm_1.f90: Similar.

From-SVN: r219364

9 years agojit: New API entrypoint: gcc_jit_context_get_last_error
David Malcolm [Thu, 8 Jan 2015 21:52:35 +0000 (21:52 +0000)]
jit: New API entrypoint: gcc_jit_context_get_last_error

gcc/jit/ChangeLog:
* docs/topics/contexts.rst (Error-handling): Document new
entrypoint gcc_jit_context_get_last_error.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-recording.c (gcc::jit::recording::context::context):
Initialize new fields "m_last_error_str" and
"m_owns_last_error_str".
(gcc::jit::recording::context::~context): Clean up
m_last_error_str, if needed.
(gcc::jit::recording::context::add_error_va): Update
m_last_error_str and m_owns_last_error_str, freeing the old
value if appropriate.
(gcc::jit::recording::context::get_last_error): New function.
* jit-recording.h (gcc::jit::recording::context::get_last_error):
New function.
(gcc::jit::recording::context): New fields m_last_error_str and
m_owns_last_error_str.
* libgccjit.c (gcc_jit_context_get_last_error): New function.
* libgccjit.h (gcc_jit_context_get_last_error): New declaration.
* libgccjit.map (gcc_jit_context_get_last_error): New function.

gcc/testsuite/ChangeLog:
* jit.dg/test-error-block-in-wrong-function.c (verify_code):
Verify the result of gcc_jit_context_get_last_error.
* jit.dg/test-error-null-passed-to-api.c (verify_code): Likewise.

From-SVN: r219363

9 years agore PR tree-optimization/63989 (tree-ssa-strlen.c doesn't handle constant pointer...
Jakub Jelinek [Thu, 8 Jan 2015 21:30:56 +0000 (22:30 +0100)]
re PR tree-optimization/63989 (tree-ssa-strlen.c doesn't handle constant pointer plus and array refs if constant offset is smaller than known constant string length)

PR tree-optimization/63989
* params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
from 1000 to 10000.
* tree-ssa-strlen.c (get_strinfo): Moved earlier.
(get_stridx): If we don't have a record for certain SSA_NAME,
but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
constant offset, call get_stridx_plus_constant.
(get_stridx_plus_constant): New function.
(zero_length_string): Don't use get_stridx here.

* gcc.dg/strlenopt-27.c: New test.

From-SVN: r219362

9 years agore PR target/55023 (hppa: wrong code generated with tail call optimisation)
Jakub Jelinek [Thu, 8 Jan 2015 21:29:44 +0000 (22:29 +0100)]
re PR target/55023 (hppa: wrong code generated with tail call optimisation)

PR target/55023
PR middle-end/64388
* dse.c (struct insn_info): Mention frame_read set also
before reload for tail calls on some targets.
(scan_insn): Revert 2014-12-22 change.  Set frame_read
also before reload for tail calls if
HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
instead of add_non_frame_wild_read for non-const/memset
tail calls after reload.

From-SVN: r219361

9 years agoubsan.c (do_ubsan_in_current_function): New.
Jason Merrill [Thu, 8 Jan 2015 21:27:22 +0000 (16:27 -0500)]
ubsan.c (do_ubsan_in_current_function): New.

gcc/
* ubsan.c (do_ubsan_in_current_function): New.
(pass_ubsan::gate): Use it.
* ubsan.h: Declare it.
* convert.c (convert_to_integer): Use it.
gcc/c-family/
* c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
do_ubsan_in_current_function.
(ubsan_maybe_instrument_reference_or_call): Likewise.
* c-ubsan.h: Declare it.
gcc/cp/
* cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
* decl.c (compute_array_index_type): Likewise.
* init.c (build_vec_init): Likewise.
* typeck.c (cp_build_binary_op): Likewise.

From-SVN: r219360

9 years agoinit.c (build_vec_init): Call ubsan_instrument_bounds to check whether an initializer...
Jason Merrill [Thu, 8 Jan 2015 20:58:39 +0000 (15:58 -0500)]
init.c (build_vec_init): Call ubsan_instrument_bounds to check whether an initializer-list is too big...

* init.c (build_vec_init): Call ubsan_instrument_bounds to check
whether an initializer-list is too big for a VLA.
(throw_bad_array_length): Remove.
* cp-tree.h: Remove prototype.

From-SVN: r219359

9 years agocmd/go: Use builtin constant to set default gccgo compiler.
Ian Lance Taylor [Thu, 8 Jan 2015 20:32:42 +0000 (20:32 +0000)]
cmd/go: Use builtin constant to set default gccgo compiler.

Don't look it up on PATH.  This lets a go tool built as part
of a GCC build use the gccgo from the same build.

Also pass -c when assembling a .s file with gccgo.

From-SVN: r219358

9 years agoNew jit API entrypoint: gcc_jit_context_set_logfile
David Malcolm [Thu, 8 Jan 2015 19:41:07 +0000 (19:41 +0000)]
New jit API entrypoint: gcc_jit_context_set_logfile

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

9 years agore PR target/64338 (ICE in swap_condition, at jump.c:628)
Jakub Jelinek [Thu, 8 Jan 2015 19:15:53 +0000 (20:15 +0100)]
re PR target/64338 (ICE in swap_condition, at jump.c:628)

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

9 years agotsan.c (pass_tsan::gate): Add no_sanitize_thread support.
Mike Stump [Thu, 8 Jan 2015 18:56:11 +0000 (18:56 +0000)]
tsan.c (pass_tsan::gate): Add no_sanitize_thread support.

* 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

9 years agotrans-decl.c (gfc_build_qualified_array): Fix coarray tokens for module coarrays...
Tobias Burnus [Thu, 8 Jan 2015 18:09:25 +0000 (19:09 +0100)]
trans-decl.c (gfc_build_qualified_array): Fix coarray tokens for module 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

9 years agore PR c++/59004 (ICE generated by __func__)
Paolo Carlini [Thu, 8 Jan 2015 18:04:03 +0000 (18:04 +0000)]
re PR c++/59004 (ICE generated by __func__)

2015-01-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59004
* g++.dg/ext/fnname4.C: New.

From-SVN: r219353

9 years agore PR c++/64462 (ICE while compiling lambda using local constexpr reference variable)
Paolo Carlini [Thu, 8 Jan 2015 17:48:38 +0000 (17:48 +0000)]
re PR c++/64462 (ICE while compiling lambda using local constexpr reference variable)

2015-01-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/64462
* g++.dg/cpp0x/constexpr-64462.C: New.

From-SVN: r219352

9 years agore PR libstdc++/60132 (C++11: lack of is_trivially_copy_constructible)
Jonathan Wakely [Thu, 8 Jan 2015 16:24:55 +0000 (16:24 +0000)]
re PR libstdc++/60132 (C++11: lack of is_trivially_copy_constructible)

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

9 years agolibgomp: Fix 32-bit x86 Intel MIC offloading testing.
Thomas Schwinge [Thu, 8 Jan 2015 16:01:37 +0000 (17:01 +0100)]
libgomp: Fix 32-bit x86 Intel MIC offloading testing.

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

9 years agolibgomp: Fix "intelmic" offloading in build-tree testing.
Thomas Schwinge [Thu, 8 Jan 2015 16:01:24 +0000 (17:01 +0100)]
libgomp: Fix "intelmic" offloading in build-tree testing.

libgomp/
* testsuite/lib/libgomp.exp (libgomp_init): Correctly match
"intelmic" in $offload_targets.

From-SVN: r219348

9 years agore PR c++/60753 (Deleted definition of an explicit function template specialization...
Paolo Carlini [Thu, 8 Jan 2015 15:48:36 +0000 (15:48 +0000)]
re PR c++/60753 (Deleted definition of an explicit function template 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

9 years agoMake sure that OMP builtins are available in offloading compilers.
Thomas Schwinge [Thu, 8 Jan 2015 15:41:13 +0000 (16:41 +0100)]
Make sure that OMP builtins are available in offloading compilers.

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

9 years agointelmic-mkoffload: Deal with linker defaulting to 32-bit x86 mode.
Thomas Schwinge [Thu, 8 Jan 2015 14:58:45 +0000 (15:58 +0100)]
intelmic-mkoffload: Deal with linker defaulting to 32-bit x86 mode.

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

9 years agoliboffloadmic/plugin: Depend on libgomp being built.
Thomas Schwinge [Thu, 8 Jan 2015 14:46:22 +0000 (15:46 +0100)]
liboffloadmic/plugin: Depend on libgomp being built.

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

9 years ago* include/bits/hashtable_policy.h: Use __bool_constant.
Jonathan Wakely [Thu, 8 Jan 2015 13:27:30 +0000 (13:27 +0000)]
* include/bits/hashtable_policy.h: Use __bool_constant.

From-SVN: r219343

9 years agosh-mem.cc: Use constant as second operand when emitting tstsi_t insns.
Oleg Endo [Thu, 8 Jan 2015 11:28:22 +0000 (11:28 +0000)]
sh-mem.cc: Use constant as second operand when emitting tstsi_t insns.

gcc/
* config/sh/sh-mem.cc: Use constant as second operand when emitting
tstsi_t insns.

From-SVN: r219342

9 years agore PR target/55212 ([SH] Switch to LRA)
Oleg Endo [Thu, 8 Jan 2015 11:07:45 +0000 (11:07 +0000)]
re PR target/55212 ([SH] Switch to LRA)

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

9 years agore PR sanitizer/64336 (Template functions are not instrumented at -O0 and -Og)
Jakub Jelinek [Thu, 8 Jan 2015 09:20:24 +0000 (10:20 +0100)]
re PR sanitizer/64336 (Template functions are not instrumented at -O0 and -Og)

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

9 years agore PR target/64533 ([SH] alloca generates unsafe code)
Kaz Kojima [Thu, 8 Jan 2015 09:05:06 +0000 (09:05 +0000)]
re PR target/64533 ([SH] alloca generates unsafe code)

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

9 years agore PR target/36557 (-m32 -mpowerpc64 produces better code than -m64 for a!=0)
Segher Boessenkool [Thu, 8 Jan 2015 03:46:41 +0000 (04:46 +0100)]
re PR target/36557 (-m32 -mpowerpc64 produces better code than -m64 for a!=0)

PR target/36557
* config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.

From-SVN: r219336

9 years agoinvoke.texi ([-fvtable-verify]): Fix markup on option keywords.
Sandra Loosemore [Thu, 8 Jan 2015 02:03:35 +0000 (21:03 -0500)]
invoke.texi ([-fvtable-verify]): Fix markup on option keywords.

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

9 years agoAdd new jit testcase accidentally omitted from r219320
David Malcolm [Thu, 8 Jan 2015 01:09:14 +0000 (01:09 +0000)]
Add new jit testcase accidentally omitted from r219320

From-SVN: r219334

9 years agojit: Add checking for dereference of void *
David Malcolm [Thu, 8 Jan 2015 01:08:19 +0000 (01:08 +0000)]
jit: Add checking for dereference of void *

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

9 years agoDaily bump.
GCC Administrator [Thu, 8 Jan 2015 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r219330

9 years agoinvoke.texi: Fix incorrect uses of @samp markup throughout the file where @code...
Sandra Loosemore [Wed, 7 Jan 2015 20:45:34 +0000 (15:45 -0500)]
invoke.texi: Fix incorrect uses of @samp markup throughout the file where @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

9 years agoAPI extension: add GCC_JIT_UNARY_OP_ABS to enum gcc_jit_unary_op
David Malcolm [Wed, 7 Jan 2015 20:40:46 +0000 (20:40 +0000)]
API extension: add GCC_JIT_UNARY_OP_ABS to enum gcc_jit_unary_op

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

9 years agoAdd test of handling arithmetic-overflow from JIT
David Malcolm [Wed, 7 Jan 2015 20:03:06 +0000 (20:03 +0000)]
Add test of handling arithmetic-overflow from JIT

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

9 years agoFix typo in jit-recording.h
David Malcolm [Wed, 7 Jan 2015 19:52:46 +0000 (19:52 +0000)]
Fix typo in jit-recording.h

gcc/jit/ChangeLog:
* jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix
typo in comment.

From-SVN: r219319

9 years agojit.exp: support C++ testcases
David Malcolm [Wed, 7 Jan 2015 19:19:10 +0000 (19:19 +0000)]
jit.exp: support C++ testcases

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

9 years agoMakefile.am: Compile del_ops.cc as C++14.
Jonathan Wakely [Wed, 7 Jan 2015 17:08:11 +0000 (17:08 +0000)]
Makefile.am: Compile del_ops.cc as C++14.

* libsupc++/Makefile.am: Compile del_ops.cc as C++14.
* libsupc++/Makefile.in: Regenerate.

From-SVN: r219317

9 years agore PR go/61204 (gccgo: ICE in in fold_convert_loc [GoSmith])
Chris Manghane [Wed, 7 Jan 2015 16:14:50 +0000 (16:14 +0000)]
re PR go/61204 (gccgo: ICE in in fold_convert_loc [GoSmith])

PR go/61204
* go-gcc.cc (Gcc_backend::temporary_variable): Don't initialize
zero-sized variable.

From-SVN: r219316

9 years agojit.exp: add __func__ to help test-{combination|threads}.c
David Malcolm [Wed, 7 Jan 2015 16:03:36 +0000 (16:03 +0000)]
jit.exp: add __func__ to help test-{combination|threads}.c

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

9 years agocompiler: Don't assign to embedded builtins in imported struct composite
Ian Lance Taylor [Wed, 7 Jan 2015 15:38:24 +0000 (15:38 +0000)]
compiler: Don't assign to embedded builtins in imported struct composite
literals.

Fixes https://github.com/golang/go/issues/6832.

From-SVN: r219313

9 years agojit.exp: Don't drop the extension from the testcase when naming executable
David Malcolm [Wed, 7 Jan 2015 15:35:19 +0000 (15:35 +0000)]
jit.exp: Don't drop the extension from the testcase when naming executable

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 11:15:30 +0000 (12:15 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 11:13:15 +0000 (12:13 +0100)]
[multiple changes]

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

9 years agoMinor reformatting.
Arnaud Charlet [Wed, 7 Jan 2015 11:00:13 +0000 (12:00 +0100)]
Minor reformatting.

From-SVN: r219295

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 10:26:56 +0000 (11:26 +0100)]
[multiple changes]

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

9 years agolib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded cross ref files.
Johannes Kanig [Wed, 7 Jan 2015 10:24:46 +0000 (10:24 +0000)]
lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded cross ref 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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 10:22:51 +0000 (11:22 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 10:15:18 +0000 (11:15 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 10:12:03 +0000 (11:12 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 10:01:36 +0000 (11:01 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 09:52:50 +0000 (10:52 +0100)]
[multiple changes]

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

9 years agotrans.c (gnat_to_gnu, [...]): Elaborate the expression as part of the same stmt group...
Olivier Hainque [Wed, 7 Jan 2015 09:49:24 +0000 (09:49 +0000)]
trans.c (gnat_to_gnu, [...]): Elaborate the expression as part of the same 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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 09:31:05 +0000 (10:31 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 08:55:01 +0000 (09:55 +0100)]
[multiple changes]

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

9 years ago[multiple changes]
Arnaud Charlet [Wed, 7 Jan 2015 08:52:35 +0000 (09:52 +0100)]
[multiple changes]

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

9 years agoprj.ads, [...]: Minor reformatting.
Robert Dewar [Wed, 7 Jan 2015 08:49:42 +0000 (08:49 +0000)]
prj.ads, [...]: Minor reformatting.

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

9 years agofreeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component type as...
Eric Botcazou [Wed, 7 Jan 2015 08:45:17 +0000 (08:45 +0000)]
freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component 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

9 years ago2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
Hristian Kirtchev [Wed, 7 Jan 2015 08:41:47 +0000 (08:41 +0000)]
2015-01-07  Hristian Kirtchev  <kirtchev@adacore.com>

* 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

9 years agore PR c/64440 (-Wdiv-by-zero false negative on const variables)
Marek Polacek [Wed, 7 Jan 2015 08:21:50 +0000 (08:21 +0000)]
re PR c/64440 (-Wdiv-by-zero false negative on const variables)

PR c/64440
* c-common.c (c_fully_fold_internal): Warn for division and modulo
if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.

* gcc.dg/pr64440.c: New test.
* c-c++-common/pr56607.c: Don't limit dg-warnings to C++.

From-SVN: r219279

9 years agore PR c/64417 ([SH] FAIL: gcc.c-torture/compile/pr28865.c -O0 (test for excess...
Marek Polacek [Wed, 7 Jan 2015 08:19:48 +0000 (08:19 +0000)]
re PR c/64417 ([SH] FAIL: gcc.c-torture/compile/pr28865.c   -O0  (test for excess errors))

PR c/64417
c/
* c-typeck.c (process_init_element): Disallow initialization of
a flexible array member with a string constant if the structure
is in an array.
testsuite/
* gcc.c-torture/compile/pr28865.c: Add dg-errors.
* gcc.dg/pr64417.c: New test.

From-SVN: r219278

9 years agoinvoke.texi (RS/6000 and PowerPC Options): Tidy formatting of -mrecip= documentation.
Sandra Loosemore [Wed, 7 Jan 2015 01:28:04 +0000 (20:28 -0500)]
invoke.texi (RS/6000 and PowerPC Options): Tidy formatting of -mrecip= documentation.

2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
of -mrecip= documentation.

From-SVN: r219277

9 years agoDaily bump.
GCC Administrator [Wed, 7 Jan 2015 00:16:58 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r219276

9 years agocompiler: Add explicit sign to exported complex constants without imaginary component.
Ian Lance Taylor [Wed, 7 Jan 2015 00:15:46 +0000 (00:15 +0000)]
compiler: Add explicit sign to exported complex constants without imaginary component.

Fixes issue 31.

From-SVN: r219273

9 years agolibgo: Add sources for go, cgo, and gofmt commands.
Ian Lance Taylor [Tue, 6 Jan 2015 23:26:02 +0000 (23:26 +0000)]
libgo: Add sources for go, cgo, and gofmt commands.

The new commands are not yet built.  That will be done
separately.

Also include a few changes to go/build to support them.

From-SVN: r219272

9 years agoparser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid template-ids.
Jason Merrill [Tue, 6 Jan 2015 20:44:59 +0000 (15:44 -0500)]
parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid template-ids.

* parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
template-ids.

From-SVN: r219269

9 years agore PR c++/64455 (A constexpr variable template can't be used with enable_if)
Jason Merrill [Tue, 6 Jan 2015 20:44:51 +0000 (15:44 -0500)]
re PR c++/64455 (A constexpr variable template can't be used with enable_if)

PR c++/64455
* pt.c (type_dependent_expression_p): Handle variable templates.
* constexpr.c (potential_constant_expression_1): Use it.

From-SVN: r219268

9 years agore PR c++/64487 (internal compiler error: in fold_offsetof_1, at c-family/c-common...
Jason Merrill [Tue, 6 Jan 2015 20:44:46 +0000 (15:44 -0500)]
re PR c++/64487 (internal compiler error: in fold_offsetof_1, at c-family/c-common.c:9857)

PR c++/64487
* semantics.c (finish_offsetof): Handle templates here.
* parser.c (cp_parser_builtin_offsetof): Not here.

From-SVN: r219267

9 years agore PR c++/64496 (ICE with NSDMI and lambda)
Jason Merrill [Tue, 6 Jan 2015 20:44:39 +0000 (15:44 -0500)]
re PR c++/64496 (ICE with NSDMI and lambda)

PR c++/64496
* semantics.c (process_outer_var_ref): Diagnose lambda in local
class NSDMI.

From-SVN: r219266

9 years agore PR c++/64489 (A simple struct wrapping a const int is not trivially copyable)
Ville Voutilainen [Tue, 6 Jan 2015 20:44:32 +0000 (22:44 +0200)]
re PR c++/64489 (A simple struct wrapping a const int is not trivially copyable)

PR c++/64489
* class.c (check_field_decls): Make copy assignment operators
complex only in c++98 mode.

From-SVN: r219265

9 years agore PR target/64505 (Powerpc compiler generates insn not found for -m32 -mpowerpc64)
Michael Meissner [Tue, 6 Jan 2015 20:29:54 +0000 (20:29 +0000)]
re PR target/64505 (Powerpc compiler generates insn not found for -m32 -mpowerpc64)

[gcc]
2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/64505
* config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
correct reload handler if -m32 -mpowerpc64 is used.

[gcc/testsuite]
2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/64505
* gcc.target/powerpc/pr64505.c: New file to test -m32 -mpowerpc64
fix is correct.

From-SVN: r219264

9 years agogo-gcc.cc (constructor_expression): Don't initialize zero-sized fields, just evaluate...
Chris Manghane [Tue, 6 Jan 2015 18:57:06 +0000 (18:57 +0000)]
go-gcc.cc (constructor_expression): Don't initialize zero-sized fields, just evaluate the values for side effects.

* go-gcc.cc (constructor_expression): Don't initialize zero-sized
fields, just evaluate the values for side effects.

From-SVN: r219262

9 years agoFix typo in struct same_succ_def comment
Tom de Vries [Tue, 6 Jan 2015 14:42:13 +0000 (14:42 +0000)]
Fix typo in struct same_succ_def comment

2015-01-06  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.

From-SVN: r219261

9 years ago* config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().
Jonathan Wakely [Tue, 6 Jan 2015 13:13:36 +0000 (13:13 +0000)]
* config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().

From-SVN: r219260

9 years agotsan-dg.exp (check_effective_target_fsanitize_thread): Check if testcases run without...
Eric Botcazou [Tue, 6 Jan 2015 12:23:07 +0000 (12:23 +0000)]
tsan-dg.exp (check_effective_target_fsanitize_thread): Check if testcases run without errors, not just if they compile.

* lib/tsan-dg.exp (check_effective_target_fsanitize_thread):
Check if testcases run without errors, not just if they compile.

From-SVN: r219259

9 years agore PR target/64507 (SH inlined builtin strncmp doesn't return 0 for 0 length)
Christian Bruel [Tue, 6 Jan 2015 11:59:09 +0000 (12:59 +0100)]
re PR target/64507 (SH inlined builtin strncmp doesn't return 0 for 0 length)

PR target/64507
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.

From-SVN: r219257

9 years agore PR tree-optimization/63259 (Detecting byteswap sequence)
Thomas Preud'homme [Tue, 6 Jan 2015 11:51:16 +0000 (11:51 +0000)]
re PR tree-optimization/63259 (Detecting byteswap sequence)

2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63259
    * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
    if optab exists for 16bit byteswap.

From-SVN: r219256

9 years agoKill new warnings.
Arnaud Charlet [Tue, 6 Jan 2015 10:45:03 +0000 (10:45 +0000)]
Kill new warnings.

From-SVN: r219255