- 20 Feb, 2019 19 commits
-
-
PR c/89410 reports various issues with #line directives with very large numbers; one of them is an ICE inside diagnostic-show-locus.c when emitting a diagnostic at line 0xffffffff. The issue is that the arithmetic in layout::calculate_line_spans to determine if two line spans are sufficiently close to consolidate was using the unsigned 32-bit linenum_type, which was overflowing when comparing the line for the expanded location with those of the location range (all on line 0xffffffff), leading to it erroneously adding two spans for the same line, leading to an assertion failure. This patch fixes the ICE by generalizing the use of long long in line-map.h's comparison function for linenum_type into a new linenum_arith_t typedef, and using it here. Doing so uncovered a second problem: the loop to print the lines within the line_span for this case is infinite: looping from 0xfffffff upwards, overflowing to 0, and then never becoming greater than 0xfffffff. The patch fixes this by using linenum_arith_t there also. gcc/ChangeLog: PR c/89410 * diagnostic-show-locus.c (layout::calculate_line_spans): Use linenum_arith_t when determining if two adjacent line spans are close enough to merge. (diagnostic_show_locus): Use linenum_arith_t when iterating over lines within each line_span. gcc/testsuite/ChangeLog: PR c/89410 * gcc.dg/pr89410-1.c: New test. * gcc.dg/pr89410-2.c: New test. libcpp/ChangeLog: PR c/89410 * include/line-map.h (linenum_arith_t): New typedef. (compare): Use it. From-SVN: r269050
David Malcolm committed -
Reviewed-on: https://go-review.googlesource.com/c/163097 From-SVN: r269049Ian Lance Taylor committed -
Here build_offset_ref calls build_qualified_name to make a SCOPE_REF because the dependent template arguments make type_dependent_expression_p (member) true. We could probably work hard to prevent this, but it doesn't seem necessary, and it's easy to fix write_expression to handle the result. * mangle.c (write_expression): Handle SCOPE_REF to BASELINK. From-SVN: r269048
Jason Merrill committed -
From-SVN: r269047
Jason Merrill committed -
Here 'skipped' was set to -1 to force an explicit initializer for 'uninit' before the initializer for 'initialized', and so we also tried to emit an explicit initializer for the flexible array, for which build_zero_init returns error_mark_node. We should ignore flexarrays even when skipped < 0. * typeck2.c (process_init_constructor_record): Skip flexarrays. From-SVN: r269046
Jason Merrill committed -
* decl.c (reshape_init_r): Allow braces around scalar initializer within aggregate init. Reject double braced-init of scalar variable. From-SVN: r269045
Will Wray committed -
* lib/target-supports.exp (check_effective_target_vect_usad_char): Add PowerPC support. * gcc.dg/vect/slp-reduc-sad.c: Update scan string. * gcc.dg/vect/vect-reduc-sad.c: Likewise. From-SVN: r269043
Pat Haugen committed -
Cherry-pick compiler-rt revision 354451: r316591 has @@ -389,13 +383,11 @@ uptr internal_dup2(int oldfd, int newfd) { } uptr internal_readlink(const char *path, char *buf, uptr bufsize) { -#if SANITIZER_NETBSD - return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize); -#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS +#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS return internal_syscall(SYSCALL(readlinkat), AT_FDCWD, (uptr)path, (uptr)buf, bufsize); #else - return internal_syscall(SYSCALL(readlink), (uptr)path, (uptr)buf, bufsize); + return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize); #endif } which dropped the (uptr) cast and broke x32. This patch puts back the (uptr) cast to restore x32 and fixes: https://bugs.llvm.org/show_bug.cgi?id=40783 Differential Revision: https://reviews.llvm.org/D58413 PR sanitizer/89409 * sanitizer_common/sanitizer_linux.cc (internal_readlink): Cherry-pick compiler-rt r354451. From-SVN: r269042H.J. Lu committed -
2019-02-19 Caroline Tice <cmtice@google.com> Fix testsuite * testsuite/libvtv.cc/const_vtable.cc (main): Fix function signature. From-SVN: r269041
Caroline Tice committed -
Revert: PR target/89397 * config/i386/i386.c (ix86_option_override_internal): Set opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled. gcc/testsuite/ PR target/89397 * gcc.target/i386/pr89397.c: New test. From-SVN: r269040Uros Bizjak committed -
subregs gcc/ChangeLog: 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/86487 * lra-constraints.c(uses_hard_regs_p): Fix handling of paradoxical SUBREGS. gcc/testsuite/ChangeLog: 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/86487 * gcc.target/arm/pr86487.c: New. From-SVN: r269039
Andre Vieira committed -
2019-02-20 Martin Liska <mliska@suse.cz> * gfortran.texi: Change singular to plural. From-SVN: r269038
Martin Liska committed -
/cp 2019-02-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84536 * pt.c (tsubst_init): Diagnose an initializer expanding to an empty list of expressions; tweak wrt dependent types. (regenerate_decl_from_template): For VAR_DECLs call tsubst_init instead of tsubst_expr. /testsuite 2019-02-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84536 * g++.dg/cpp1y/var-templ60.C: New. From-SVN: r269037
Paolo Carlini committed -
2019-02-19 Thomas Schwinge <thomas@codesourcery.com> PR c/87924 * openmp.c (gfc_match_omp_clauses): Add representation of wait clause without argument as 'wait (GOMP_ASYNC_NOVAL)'. From-SVN: r269036
Thomas Schwinge committed -
2019-02-20 Martin Liska <mliska@suse.cz> * gfortran.texi: Document Fortran header directive. From-SVN: r269035
Martin Liska committed -
re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target) PR libstdc++/89402 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add _GLIBCXX_PURE to the alias declaration. From-SVN: r269034
Jakub Jelinek committed -
GCC revision 259524 implemented range check for the vec_splat_{su}{8,16,32} builtins. However, as a consequence of the implementation, the range check is not done correctly for the expected vspltis[bhw] instructions. The result is that we may not get a valid error message if the valid range of the data is exceeded. Although the input of the function prototype of vec_splat_{su}{8,16,32} is const int, the actual data usage range is limited to the data range of 5 bits signed. We should limit the int_cst.val[0] data to the 5 bit signed data range without any modification in the input arg0 parameter. However, the sext_hwi function intercepts the data of TREE_INT_CST_LOW (arg0) as size bits in the sext_hwi (TREE_INT_CST_LOW (arg0), size) statement. This will cause some of the excess data to fall within the range of 5 bits signed, so that the correct diagnostic information cannot be generated, we need to remove the sext_hwi to ensure that the input data has not been modified. This patch fix range check for the vec_splat_s[8,16,32] builtins. The argument must be a 5-bit const int as specified for the vspltis[bhw] instructions. for gcc/ChangeLog PR target/88100 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before range checking it. for gcc/testsuite/ChangeLog PR target/88100 * gcc/testsuite/gcc.target/powerpc/pr88100.c: New testcase. From-SVN: r269033Li Jia He committed -
Since my patch for 81359 allowed us to signal failure on return from maybe_instantiate_noexcept, we no longer need to turn an error into noexcept(false). We also need to handle NSDMI instantiation errors under synthesized_method_walk. This change caused some instantiation context notes to be lost in the testsuite, so I added push_tinst_level to get_defaulted_eh_spec to restore that context. * method.c (walk_field_subobs): Remember errors from get_nsdmi. (get_defaulted_eh_spec): Call push_tinst_level. * pt.c (maybe_instantiate_noexcept): Keep error_mark_node. * typeck2.c (merge_exception_specifiers): Handle error_mark_node. From-SVN: r269032
Jason Merrill committed -
From-SVN: r269031
GCC Administrator committed
-
- 19 Feb, 2019 21 commits
-
-
From-SVN: r269028
Jonathan Wakely committed -
Introduce a set debug_go_* global functions that can be used to emit AST dumps for Go statements and expressions from within GDB (for use by people developing gccgo). Reviewed-on: https://go-review.googlesource.com/c/162903 From-SVN: r269027Ian Lance Taylor committed -
Fix pr88850.c testcase which was failing in hardfp environments. Committed as obvious. gcc/testsuite/ * gcc.target/arm/pr88850.c: Block -mfloat-abi override. From-SVN: r269026Wilco Dijkstra committed -
2019-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * src/Makefile.am: Avoid the -D option which is not available with the install-sh fallback. Use $(MKDIR_P) instead. * libdruntime/Makefile.am: Likewise. * src/Makefile.in: Regenerated. * libdruntime/Makefile.in: Regenerated. From-SVN: r269025Bernd Edlinger committed -
re PR fortran/89384 (CONTIGUOUS dummy argument in BIND(C) interface incorrect when actual is non-contiguous) 2019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/89384 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy argument is contiguous and the actual argument may not be, use gfc_conv_subref_array_arg. 2019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/89384 * gfortran.dg/ISO_Fortran_binding_4.f90 From-SVN: r269024
Thomas Koenig committed -
* unwind-dw2.c (_Unwind_GetGR) [DWARF_ZERO_REG]: Compare regno instead of index to DWARF_ZERO_REG. From-SVN: r269021
Uros Bizjak committed -
... which the recent r269016 didn't do. gcc/testsuite/ PR c/87924 * c-c++-common/goacc/asyncwait-5.c: Remove XFAILs. * gfortran.dg/goacc/asyncwait-5.f: Likewise. From-SVN: r269020
Thomas Schwinge committed -
PR go/89169 internal/cpu: do not require POWER8 Although the gc toolchain requires POWER8, the gccgo toolchain does not. Fixes https://gcc.gnu.org/PR89169 Reviewed-on: https://go-review.googlesource.com/c/162979 From-SVN: r269019Ian Lance Taylor committed -
In signal-triggered stack scan, if the signal is delivered at certain bad time (e.g. in vdso, or in the middle of setcontext?), the unwinder may not be able to unwind the whole stack, while it still reports _URC_END_OF_STACK. So we cannot rely on _URC_END_OF_STACK to tell if it successfully scanned the stack. Instead, we check the last Go frame to see it actually reached the end of the stack. For Go-created stack, this is runtime.kickoff. For C-created stack, we need to record the outermost Go frame when it enters the Go side. Also we cannot unwind the stack if the signal is delivered in the middle of runtime.gogo, halfway through a goroutine switch, where the g and the stack don't match. Give up in this case as well. Reviewed-on: https://go-review.googlesource.com/c/159098 From-SVN: r269018Ian Lance Taylor committed -
ix86_fpmath should be set to combination of FPMATH_387 and FPMATH_SSE. When SSE is disabled, it should be set to FPMATH_387 and 387 codegen is also controlled by -msoft-float. gcc/ PR target/89397 * config/i386/i386.c (ix86_option_override_internal): Set opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled. gcc/testsuite/ PR target/89397 * gcc.target/i386/pr89397.c: New test. From-SVN: r269017
H.J. Lu committed -
2019-02-19 Chung-Lin Tang <cltang@codesourcery.com> PR c/87924 gcc/c/ * c-parser.c (c_parser_oacc_clause_wait): Add representation of wait clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments. gcc/cp/ * parser.c (cp_parser_oacc_clause_wait): Add representation of wait clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments. gcc/fortran/ * openmp.c (gfc_match_omp_clauses): Add representation of wait clause without argument as 'wait (GOMP_ASYNC_NOVAL)'. libgomp/ * oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to goacc_wait(). (goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call and related adjustment. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r269016
Chung-Lin Tang committed -
2019-02-19 Richard Biener <rguenther@suse.de> PR middle-end/88074 * toplev.c (do_compile): Initialize mpfr's exponent range based on available float modes. * gcc.dg/pr88074.c: New testcase. From-SVN: r269015Richard Biener committed -
2019-02-19 Iain Buclaw <ibuclaw@gdcproject.org> * testsuite/libphobos.shared/load.d: Import core.sys.posix.dlfcn. [DragonFlyBSD, FreeBSD, linux, NetBSD, OSX, Solaris]: Import only RTLD_NOLOAD from core.sys.*.dlfcn. Assert RTLD_NOLOAD is available. From-SVN: r269014
Iain Buclaw committed -
rtlanal.c (get_initial_register_offset): Fall back to the estimate as long as the epilogue isn't completed. * rtlanal.c (get_initial_register_offset): Fall back to the estimate as long as the epilogue isn't completed. From-SVN: r269013
Eric Botcazou committed -
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_NET): New macro. * configure.ac: Invoke it. * configure: Regenerate. From-SVN: r269012
Rainer Orth committed -
PR middle-end/89303 * g++.dg/torture/pr89303.C: Move everything from std namespace to my namespace. From-SVN: r269010
Jakub Jelinek committed -
PR c++/89387 * lambda.c (maybe_generic_this_capture): Don't check DECL_NONSTATIC_MEMBER_FUNCTION_P on USING_DECLs. * g++.dg/cpp0x/lambda/lambda-89387.C: New test. From-SVN: r269009
Jakub Jelinek committed -
PR c++/89391 * typeck.c (build_reinterpret_cast_1): Don't handle void to && conversion go through build_target_expr_with_type. * g++.dg/cpp0x/reinterpret_cast2.C: New test. From-SVN: r269008
Jakub Jelinek committed -
PR c++/89390 * error.c (qualified_name_lookup_error): Only call suggest_alternative_in_scoped_enum if name is IDENTIFIER_NODE. * g++.dg/diagnostic/pr89390.C: New test. From-SVN: r269007
Jakub Jelinek committed -
* testsuite/21_strings/basic_string/literals/types.cc [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal. * testsuite/21_strings/basic_string/literals/values.cc [_GLIBCXX_USE_CHAR8_T]: Likewise. * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals potentially having different type. * testsuite/22_locale/codecvt/char32_t.cc: Likewise. * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal to char. * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise. * testsuite/22_locale/codecvt/utf8.cc: Likewise. * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from string literals only using basic character set. * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other u8 literals to char. * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]: Test ATOMIC_CHAR8_T_LOCK_FREE. Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test. * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t. * testsuite/experimental/string_view/literals/types.cc [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8 literal. * testsuite/experimental/string_view/literals/values.cc [_GLIBCXX_USE_CHAR8_T]: Likewise. From-SVN: r269006
Jonathan Wakely committed -
2019-02-19 Tom Honermann <tom@honermann.net> * testsuite/18_support/numeric_limits/char8_t.cc: New test cloned from char16_32_t.cc; validates numeric_limits<char8_t>. * testsuite/21_strings/basic_string/literals/types-char8_t.cc: New test cloned from types.cc; validates operator""s for char8_t returns u8string. * testsuite/21_strings/basic_string/literals/values-char8_t.cc: New test cloned from values.cc; validates construction and comparison of u8string values. * testsuite/21_strings/basic_string/requirements/ /explicit_instantiation/char8_t/1.cc: New test cloned from char16_t/1.cc; validates explicit instantiation of basic_string<char8_t>. * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: New test cloned from types.cc; validates operator""sv for char8_t returns u8string_view. * testsuite/21_strings/basic_string_view/literals/ values-char8_t.cc: New test cloned from values.cc; validates construction and comparison of u8string_view values. * testsuite/21_strings/basic_string_view/requirements/ explicit_instantiation/char8_t/1.cc: New test cloned from char16_t/1.cc; validates explicit instantiation of basic_string_view<char8_t>. * testsuite/21_strings/char_traits/requirements/char8_t/65049.cc: New test cloned from char16_t/65049.cc; validates that char_traits<char8_t> is not vulnerable to the concerns in PR65049. * testsuite/21_strings/char_traits/requirements/char8_t/ typedefs.cc: New test cloned from char16_t/typedefs.cc; validates that char_traits<char8_t> member typedefs are present and correct. * testsuite/21_strings/char_traits/requirements/ explicit_instantiation/char8_t/1.cc: New test cloned from char16_t/1.cc; validates explicit instantiation of char_traits<char8_t>. * testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned from char16_t.cc: validates codecvt<char16_t, char8_t, mbstate_t>. * testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned from char32_t.cc: validates codecvt<char32_t, char8_t, mbstate_t>. * testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and codecvt<char32_t, char8_t, std::mbstate_t>. * testsuite/27_io/filesystem/path/native/string-char8_t.cc: New test cloned from string.cc; validates filesystem::path construction from char8_t input. * testsuite/experimental/feat-char8_t.cc: New test; validates that the __cpp_lib_char8_t feature test macro is defined with the correct value. * testsuite/experimental/filesystem/path/native/string-char8_t.cc: New test cloned from string.cc; validates filesystem::path construction from char8_t input. * testsuite/experimental/string_view/literals/types-char8_t.cc: New test cloned from types.cc; validates operator""sv for char8_t returns u8string_view. * testsuite/experimental/string_view/literals/values-char8_t.cc: New test cloned from values.cc; validates construction and comparison of u8string_view values. * testsuite/experimental/string_view/requirements/ explicit_instantiation/char8_t/1.cc: New test cloned from char16_t/1.cc; validates explicit instantiation of basic_string_view<char8_t>. * testsuite/ext/char8_t/atomic-1.cc: New test; validates that ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not enabled. From-SVN: r269005
Tom Honermann committed
-