https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70756

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Thu May 12 15:28:08 2016
New Revision: 236180

URL: https://gcc.gnu.org/viewcvs?rev=236180&root=gcc&view=rev
Log:
        PR c/70756
        * c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
        size_in_bytes and pass LOC to it.

        * c-decl.c (build_compound_literal): Pass LOC down to
        c_incomplete_type_error.
        * c-tree.h (require_complete_type): Adjust declaration.
        (c_incomplete_type_error): Likewise.
        * c-typeck.c (require_complete_type): Add location parameter, pass it
        down to c_incomplete_type_error.
        (c_incomplete_type_error): Add location parameter, pass it down to
        error_at.
        (build_component_ref): Pass location down to c_incomplete_type_error.
        (default_conversion): Pass location down to require_complete_type.
        (build_array_ref): Likewise.
        (build_function_call_vec): Likewise.
        (convert_arguments): Likewise.
        (build_unary_op): Likewise.
        (build_c_cast): Likewise.
        (build_modify_expr): Likewise.
        (convert_for_assignment): Likewise.
        (c_finish_omp_clauses): Likewise.

        * call.c (build_new_op_1): Pass LOC to cp_build_modify_expr.
        * cp-tree.h (cp_build_modify_expr): Update declaration.
        (cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline
        overloads.
        * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION
to
        cp_build_modify_expr.
        * decl2.c (set_guard): Likewise.
        (handle_tls_init): Likewise.
        * init.c (perform_member_init): Likewise.
        (expand_virtual_init): Likewise.
        (build_new_1): Likewise.
        (build_vec_delete_1): Likewise.
        (get_temp_regvar): Likewise.
        (build_vec_init): Likewise.
        * method.c (do_build_copy_assign): Likewise.
        (assignable_expr): Likewise.
        * semantics.c (finish_omp_for): Likewise.
        * typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and
        cp_pointer_int_sum.
        (cp_pointer_int_sum): Add location parameter.  Pass it down to
        pointer_int_sum.
        (pointer_diff): Add location parameter.  Use it.
        (build_modify_expr): Pass location down to cp_build_modify_expr.
        (cp_build_modify_expr): Add location parameter.  Use it.
        (build_x_modify_expr): Pass location down to cp_build_modify_expr.
        * typeck2.c (cxx_incomplete_type_diagnostic,
        cxx_incomplete_type_error): Add location parameter.

        * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
        * langhooks.c (lhd_incomplete_type_error): Add location parameter.
        * langhooks.h (incomplete_type_error): Likewise.
        * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
        parameter, pass it down to incomplete_type_error.
        * tree.h (size_in_bytes): New inline overload.
        (size_in_bytes_loc): Renamed from size_in_bytes.

        * c-c++-common/pr70756-2.c: New test.
        * c-c++-common/pr70756.c: New test.


Added:
    trunk/gcc/testsuite/c-c++-common/pr70756-2.c
    trunk/gcc/testsuite/c-c++-common/pr70756.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-decl.c
    trunk/gcc/c/c-tree.h
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/call.c
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/cp-ubsan.c
    trunk/gcc/cp/decl2.c
    trunk/gcc/cp/init.c
    trunk/gcc/cp/method.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/cp/typeck.c
    trunk/gcc/cp/typeck2.c
    trunk/gcc/langhooks-def.h
    trunk/gcc/langhooks.c
    trunk/gcc/langhooks.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree.c
    trunk/gcc/tree.h

Reply via email to