| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A parenthesized initializer is only accepted when new()ing an array in
permissive mode. We were not careful, however, to convert the
TREE_LIST initializer to the array element type in this extension.
This patch fixes it: after turning the TREE_LIST initializer to a
compound_expr, we convert it to the base type.
for gcc/cp/ChangeLog
PR c++/84729
* init.c (build_vec_init): Convert tree list to base type.
for gcc/testsuite/ChangeLog
PR c++/84729
* g++.dg/pr84729.C: New.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We ICEd when attempting to convert a default arg for an auto parm, the
default arg amounting to a call to an undeclared function, in a
declaration of a pointer to function variable. It's all wrong, but
because of the bogus implicit template, we accept the typeless
expression at first. Later on, after we finish the implicit template
because it's bogus (but deferring the reporting of the error to the end
of cp_parser_init_declarator), no longer processing_template_decl, we
attempt to perform the impossible conversion from NULL type to an
unresolved and unresolvable type placeholder. We crash in
implicit_conversion because FROM is NULL, and then (once we arrange to
return a NULL conversion there) in perform_implicit_conversion_flags
when trying to determine whether the expr is an invalid use of a
nonstatic memfn.
This patch makes implicit_conversion return NULL when the FROM type is
NULL, and reports a proper error for typeless EXPRs in
perform_implicit_conversion_flags. I considered testing for
!processing_template_decl, but decided not to bother.
FWIW, I'd tried temporarily incrementing processing_template_decl while
completing the parsing of the bogus implicit template, but that didn't
go very well: we'd skip the conversion all right, but start_decl would
attempt to push_template_decl, and that would silently return
error_mark_node, which would in turn silence the bogus implicit template
error. With -fpermissive, all the other errors (misplaced auto,
unexpected default arg in pointer declaration, and undeclared function
call) would be turned to warnings or vanish altogether, so compilation
would complete in spite of the bogus parsing and the failed template
declaration. I decided not to explore that path further, and ended up
working around the errors in the conversion, so as to make sure we'd get
at least some error (we get all of them with the enclosed testcase).
for gcc/cp/ChangeLog
PR c++/84647
* call.c (implicit_conversion): Return NULL conv for NULL
from type.
(perform_implicit_conversion_flags): If conv is NULL, check
for NULL expr type and report an error instead of ICEing.
for gcc/testsuite/ChangeLog
PR c++/84647
* g++.dg/cpp0x/pr84647.C: New.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we get a parse error during an attempted fully implicit function
template parse, and need to skip to the end of the statement or block,
we may discard the function parms scope rather than the enclosing
injected implicit template parms scope. If we rollback a tentative
parse and try something else, we'll no longer be in a function parms
scope, but rather in a template parms scope, but we may still attempt
to synthesize implicit template parms and then fail the assert that
checks we're in a function parms scope.
This patch introduces an alternative to
finish_fully_implicit_template_p, to be used during error recovery,
that floats the implicit template parm scope to the top so that it
gets discarded as we finish and discard the failed implicit template
data, while other scopes are retained as expected. It also clears the
implicit template parser data as we finish the template, so that it
doesn't linger on referencing discarded or used scopes and parms.
for gcc/cp/ChangeLog
PR c++/84610
PR c++/84642
* parser.c (abort_fully_implicit_template_p): New.
(cp_parser_skip_to_end_of_statement): Use it.
(cp_parser_skip_to_end_of_block_or_statement): Likewise.
(finish_fully_implicit_template_p): Clear
implicit_template_parms and implicit_template_scope.
for gcc/testsuite/ChangeLog
PR c++/84610
PR c++/84642
* g++.dg/cpp0x/pr84610.C: New.
* g++.dg/cpp0x/pr84642.C: New.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Location views might be associated with locations that lack line
number information (line number zero), but since we omit .loc
directives that would have been issued with line number zero, we also
omit the symbolic view numbers that would have been issued at such
points.
Resetting views at function entry points address some of these issues,
and alleviate the huge chains of symbolic views that have burdened
assemblers since we disabled -ginternal-reset-location-views by
default, but other problems of undefined views remain when it's not
the whole function that lacks line number info, just parts of it.
So, when we encounter a request to output a view that may have been
referenced, but we decide to omit the .loc because the line is zero,
we will now omit the view as well, i.e., we will internally regard
that view as zero-numbered.
for gcc/ChangeLog
PR debug/84404
PR debug/84408
* dwarf2out.c (struct dw_line_info_table): Update comments for
view == -1.
(FORCE_RESET_NEXT_VIEW): New.
(FORCE_RESETTING_VIEW_P): New.
(RESETTING_VIEW_P): Check for -1 too.
(ZERO_VIEW_P): Likewise.
(new_line_info_table): Force-reset next view.
(dwarf2out_begin_function): Likewise.
(dwarf2out_source_line): Simplify zero_view_p initialization.
Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
view directly. Omit view when omitting .loc at line 0.
for gcc/testsuite/ChangeLog
PR debug/84404
PR debug/84408
* gcc.dg/graphite/pr84404.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258355 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* tree-switch-conversion.c (process_switch): Call build_constructors
only if info.phi_count is non-zero.
* gcc.dg/torture/pr84740.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258354 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-tailcall.c (find_tail_calls): Check call arguments against
DECL_ARGUMENTS (current_function_decl) rather than
DECL_ARGUMENTS (func) when checking for tail recursion.
* gcc.dg/pr84739.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258351 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
(StdListIteratorPrinter): Inherit from latter.
(StdFwdListIteratorPrinter): New, inherit from latter.
(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
when iterator has no associated container.
(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
registrations.
* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258350 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
a non-member array
gcc/testsuite/ChangeLog:
* gcc.dg/Wrestrict-13.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258348 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR fortran/64124
PR fortran/70409
* decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64124
PR fortran/70409
* gfortran.dg/pr64124.f90: New tests.
* gfortran.dg/pr70409.f90: New tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258347 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258345 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
Volker Reichelt's entry and add entries for people that perform
GCC fuzzy testing and report numerous bugs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258342 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
| |
* constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258341 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new option -mreadonly-in-sdata (on by default) that
controls whether readonly data can be put in sdata. (For EABI this
does nothing, readonly data is put in sdata2 as usual).
PR target/82411
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
readonly data in sdata, if that is disabled.
* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mreadonly-in-sdata option.
gcc/testsuite/
PR target/82411
* gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258340 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after conditional strncpy
gcc/ChangeLog:
PR tree-optimization/84468
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
basic block when looking for nul assignment.
gcc/testsuite/ChangeLog:
PR tree-optimization/84468
* g++.dg/warn/Wstringop-truncation-2.C: New test.
* gcc.dg/Wstringop-truncation.c: New test.
* gcc.dg/Wstringop-truncation-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258339 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* except.h (output_function_exception_table): Adjust prototype.
* except.c (output_function_exception_table): Remove FNNAME parameter
and add SECTION parameter. Ouput one part of the table at a time.
* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
the first part of the exception table and emit unwind directives.
* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
(i386_pe_seh_cold_init): Likewise.
* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
(ix86_output_call_insn): Emit a nop in one more case for SEH.
* config/i386/winnt.c: Include except.h.
(struct seh_frame_state): Add reg_offset, after_prologue and
in_cold_section fields.
(i386_pe_seh_end_prologue): Set seh->after_prologue.
(i386_pe_seh_cold_init): New function.
(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
to seh->in_cold_section.
(seh_emit_push): Record the offset of the push.
(seh_emit_save): Record the offet of the save.
(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
Test seh->after_prologue to disregard the epilogue.
(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
(i386_pe_end_cold_function): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258338 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
Reviewed-on: https://go-review.googlesource.com/99117
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258337 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements the same choices made in the gc runtime, except that
for 32-bit x86 we only use the fence instruction if the processor
supports SSE2.
The code here is hacked up for speed; the gc runtime uses straight
assembler.
Reviewed-on: https://go-review.googlesource.com/97715
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258336 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The $(GNATLIBCFLAGS) are already included in $(GNATLIBCFLAGS_FOR_C).
We must call the C compiler with the right machine flags. So, add
$(GNATLIBCFLAGS_FOR_C) to $(OSCONS_EXTRACT). For example, on a bi-arch
compiler supporting 32-bit and 64-bit instruction sets we pick otherwise
only one variant due to a missing -m32 or -m64 flag.
gcc/ada
* gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
$(GNATLIBCFLAGS).
(OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258334 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
* gfortran.dg/pr84565.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258333 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
on tmp_var.
* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258317 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* multiple_target.c: Include tree-inline.h and intl.h.
(expand_target_clones): Diagnose and fail if node->definition and
!tree_versionable_function_p (node->decl).
* gcc.target/i386/pr84723-1.c: New test.
* gcc.target/i386/pr84723-2.c: New test.
* gcc.target/i386/pr84723-3.c: New test.
* gcc.target/i386/pr84723-4.c: New test.
* gcc.target/i386/pr84723-5.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258316 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258314 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
sprint_ul.
(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258312 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
PR fortran/64107
* gfortran.dg/pr64107.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258311 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(__canonicalize_funcptr_for_compare): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258310 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258309 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR fortran/84697
PR fortran/66128
* expr.c (simplify_parameter_variable): If p is a size zero array
and not an ARRAY_EXPR insert an empty array constructor and
return.
* gfortran.h: Add prototype for gfc_is_size_zero_array.
* simplify.c (is_size_zero_array): Make non-static and rename into
(gfc_is_size_zero_array): Check for parameter arrays of zero
size by comparing shape and absence of constructor.
(gfc_simplify_all): Use gfc_is_size_zero_array instead of
is_size_zero_array.
(gfc_simplify_count): Likewise.
(gfc_simplify_iall): Likewise.
(gfc_simplify_iany): Likewise.
(gfc_simplify_iparity): Likewise.
(gfc_simplify_minval): Likewise.
(gfc_simplify_maxval): Likewise.
(gfc_simplify_product): Likewise.
(gfc_simplify_sum): Likewise.
2017-03-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/84697
PR fortran/66128
* gfortran.dg/minmaxloc_zerosize_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258305 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* include/std/optional (_Optional_payload): Split into multiple
specializations that can handle different cases of trivial or
non-trivial assignment operators.
* testsuite/20_util/optional/84601.cc: New.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258304 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
arguments.
* g++.dg/cpp1z/constexpr-84684.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258303 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
!building_stmt_list_p ().
* gcc.dg/pr84721.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258302 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* combine.c (try_combine): Use reg_or_subregno instead of handling
just paradoxical SUBREGs and REGs.
* gcc.dg/pr84710.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258301 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR fortran/56667
* primary.c (match_sym_complex_part): Give the matcher for an implied
do-loop a chance to run.
2018-03-06 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/56667
* gfortran.dg/implied_do_2.f90: New test.
* gfortran.dg/coarray_8.f90: Update for new error message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258281 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
guarding the overflow check emitted for the upper bound of a floating-
point conversion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258277 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258276 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove unused pieces of code.
gcc/
2018-03-06 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_finalize_pic): Remove function.
(arc_must_save_register): We use single base PIC register, remove
checks to save/restore the PIC register.
(arc_expand_prologue): Likewise.
* config/arc/arc-protos.h (arc_set_default_type_attributes):
Remove.
(arc_verify_short): Likewise.
(arc_attr_type): Likewise.
* config/arc/arc.c (arc_set_default_type_attributes): Remove.
(walk_stores): Likewise.
(arc_address_cost): Make it static.
(arc_verify_short): Likewise.
(branch_dest): Likewise.
(arc_attr_type): Likewise.
* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
(arc_final_prescan_insn): Remove inserting the nops due to
hardware hazards. It is done in reorg step.
(insn_length_variant_t): Remove.
(insn_length_parameters_t): Likewise.
(arc_insn_length_parameters): Likewise.
(arc_get_insn_variants): Likewise.
* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258275 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
assertion failure.
* g++.dg/ext/pr84683.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258273 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
on new_node->decl.
* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
* gcc.dg/pr84687.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258272 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A non-type-dependent COND_EXPR within a template is reconstructed with
the original operands, after one with non-dependent proxies is built to
determine its result type. This is problematic because the operands of
a COND_EXPR determined to be an rvalue may have been converted to denote
their rvalue nature. The reconstructed one, however, won't have such
conversions, so lvalue_kind may not recognize it as an rvalue, which may
lead to e.g. incorrect overload resolution decisions.
If we mistake such a COND_EXPR for an lvalue, overload resolution might
regard a conversion sequence that binds it to a non-const reference as
viable, and then select that over one that binds it to a const
reference. Only after template substitution would we rebuild the
COND_EXPR, realize it is an rvalue, and conclude the reference binding
is ill-formed, but at that point we'd have long discarded any alternate
candidates we could have used.
This patch modifies the logic that determines whether a
(non-type-dependent) COND_EXPR in a template is an lvalue, to rely on
its type, more specifically, on the presence of a REFERENCE_TYPE
wrapper. In order to avoid a type bootstrapping problem, the
REFERENCE_TYPE that wraps the type of some such COND_EXPRs is
introduced earlier, so that we don't have to test for lvalueness of
the expression using the very code that we wish to change.
for gcc/cp/ChangeLog
PR c++/84231
* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
only while processing template decls.
* typeck.c (build_x_conditional_expr): Move wrapping of
reference type around type...
* call.c (build_conditional_expr_1): ... here. Rename
is_lvalue to is_glvalue.
* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
INDIRECT_REF of COND_EXPR too.
for gcc/testsuite/ChangeLog
PR c++/84231
* g++.dg/pr84231.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258271 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an initializer expr is to be NULL in a ctor initializer list, we
ICE in picflag_from_initializer and elsewhere.
If we're missing an initializer for a reference field, we report the
error, but then build a zero initializer to avoid the ICE.
for gcc/cp/ChangeLog
PR c++/84593
* init.c (build_zero_init_1): Zero-initialize references.
for gcc/testsuite/ChangeLog
PR c++/84593
* g++.dg/cpp1y/pr84593.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258270 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We ICEd when returning a stmt expr that ends with an overloaded
function, because instantiate_type did not know what to do with
STMT_EXPRs. And it shouldn't have to: the expected type of a stmt
expr cannot be used to resolve its value: an unresolved overload
cannot supply the result of a stmt expr. Catch that and report the
error in the stmt expr before we have a chance to instantiate it.
for gcc/cp/ChangeLog
PR c++/84492
* semantics.c (finish_stmt_expr_expr): Reject unresolved
overloads used as stmt expr values.
for gcc/testsuite/ChangeLog
PR c++/84492
* g++.dg/pr84492.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258269 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
Rename to ppc_speculation_barrier.
* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
__builtin_ppc_speculation_barrier.
[gcc/testsuite]
2018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/spec-barr-1.c: Change called function name to
__builtin_ppc_speculation_barrier.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258268 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258267 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
context.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258264 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* combine.c (combine_simplify_rtx): Don't try to simplify if
if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
are equal to x.
* gcc.target/powerpc/pr84700.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258263 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* constexpr.c (constexpr_call_hasher::equal): Return false if
lhs->hash != rhs->hash. Change return 1 to return true and
return 0 to return false.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258262 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For POWER4..POWER8 we align loops of 5..8 instructions to 32 bytes
(instead of to 16 bytes) because that executes faster. This is no
longer the case on POWER9, so we can just as well only align to 16
bytes.
* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
to 32 bytes when compiling for POWER9.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258260 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
Fix a small typo in the mksysinfo.sh script (incorrect input
file for a grep command).
Reviewed-on: https://go-review.googlesource.com/98635
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258259 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00227.html
PR c++/84702
* pt.c (process_template_arg): Mark lookup_keep on a default arg.
PR c++/84702
* g++.dg/lookup/pr84702.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258258 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
regparm >= 3 with no arg reg available also for calls with
flag_force_indirect_call. Pass decl to ix86_function_regparm.
* gcc.target/i386/pr84564.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258256 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (duplicate_decls): Check DECL_NAME before accessing
UDLIT_OPER_P.
* g++.dg/cpp0x/inline-ns10.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258255 138bc75d-0d04-0410-961f-82ee72b054a4
|