Richard's GCC test repository for https://forge.sourceware.org/ experimenting.
  • C++ 30.8%
  • C 30.4%
  • Ada 14.2%
  • D 6%
  • Go 5.6%
  • Other 12.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andrea Pinski 0acb69bf9b range-op: Fix some divisions [PR127092]
This was an oversight of not knowing there are a few different
integer divisions and how they will round.
When `a < b` and for non-negative a and b, `a/b` will be 0 iff for
truncate (TRUNC_DIV_EXPR), exact (EXACT_DIV_EXPR)
and floor division (FLOOR_DIV_EXPR).
Ceiling division (CEIL_DIV_EXPR) will be 1 for positive a and zero when a is 0.
Rounding division (ROUND_DIV_EXPR) it is based on the how far a is from b.
We can skip the ceiling division case since it is not used that much.
And rounding division case is too hard to figure out here so that is skipped
also.

Bootstrapped and tested on x86_64-linux-gnu.

	PR tree-optimization/127092

gcc/ChangeLog:

	* range-op.cc (operator_div::op1_op2_relation_effect): Only
	handle TRUNC_DIV_EXPR, EXACT_DIV_EXPR and FLOOR_DIV_EXPR
	for the `a < b` case.

gcc/testsuite/ChangeLog:

	* gfortran.dg/pr127092-1.f90: New test.

Signed-off-by: Andrea Pinski <andrew.pinski@oss.qualcomm.com>
2026-09-02 09:29:40 -07:00
.forgejo forge: Add a prototype CODEOWNERS file 2026-06-05 17:58:58 +01:00
.github Mention the forge on unofficial mirrors 2026-07-24 07:43:47 +00:00
c++tools Daily bump. 2026-06-30 00:16:45 +00:00
config Daily bump. 2026-08-05 00:16:50 +00:00
contrib Daily bump. 2026-09-02 00:16:37 +00:00
fixincludes Daily bump. 2026-06-30 00:16:45 +00:00
gcc range-op: Fix some divisions [PR127092] 2026-09-02 09:29:40 -07:00
gnattools Daily bump. 2026-06-30 00:16:45 +00:00
gotools Daily bump. 2026-06-30 00:16:45 +00:00
include Daily bump. 2026-07-23 00:16:35 +00:00
INSTALL
libada Daily bump. 2026-06-30 00:16:45 +00:00
libatomic Daily bump. 2026-06-30 00:16:45 +00:00
libbacktrace Daily bump. 2026-09-02 00:16:37 +00:00
libcc1 Daily bump. 2026-06-30 00:16:45 +00:00
libcody Daily bump. 2026-05-31 00:16:35 +00:00
libcpp libcpp: Optimize Arm search_line_fast 2026-09-02 16:16:52 +00:00
libdecnumber Daily bump. 2026-05-31 00:16:35 +00:00
libffi Daily bump. 2026-06-18 00:16:35 +00:00
libga68 Daily bump. 2026-08-07 00:16:48 +00:00
libgcc Daily bump. 2026-09-02 00:16:37 +00:00
libgcobol cobol: Normalize call/return value types; improve execution speed. 2026-09-02 11:04:14 -04:00
libgfortran Daily bump. 2026-08-14 00:16:31 +00:00
libgm2 Daily bump. 2026-08-28 00:16:37 +00:00
libgo libgo: cmd/go: use 'gcloud storage cp' instead of 'gsutil cp' 2026-05-02 16:21:35 -07:00
libgomp libgomp: fix comment, add testcase libgomp.c/usm_env_handling-2.c [PR127186] 2026-09-02 13:57:30 +02:00
libgrust Daily bump. 2026-06-30 00:16:45 +00:00
libiberty Daily bump. 2026-07-02 00:16:40 +00:00
libitm Daily bump. 2026-07-10 00:16:35 +00:00
libobjc Daily bump. 2026-06-30 00:16:45 +00:00
libphobos Daily bump. 2026-07-11 00:16:37 +00:00
libquadmath Daily bump. 2026-06-30 00:16:45 +00:00
libsanitizer Daily bump. 2026-07-24 00:16:42 +00:00
libssp Daily bump. 2026-07-04 00:16:37 +00:00
libstdc++-v3 c++, libstdc++: Implement C++26 P2641R4 - Checking if a union alternative is active 2026-09-02 10:07:18 +02:00
libvtv Daily bump. 2026-06-30 00:16:45 +00:00
lto-plugin Daily bump. 2026-06-30 00:16:45 +00:00
maintainer-scripts Daily bump. 2026-04-23 00:16:32 +00:00
zlib Daily bump. 2025-12-30 00:16:33 +00:00
.b4-config
.dir-locals.el
.editorconfig editorconfig: Add rules for yaml/yml files. 2026-07-07 11:02:11 +01:00
.gitattributes
.gitignore Add a pyproject.toml file 2026-08-19 10:51:25 +00:00
ABOUT-NLS
ar-lib
ChangeLog Daily bump. 2026-09-02 00:16:37 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in toplevel: Unbreak Ada build [PR123490] 2026-01-10 11:36:25 +01:00
config.guess
config.rpath
config.sub
configure configure: reject unsupported --with-long-double-64 option [PR122535] 2026-09-02 12:11:59 +05:30
configure.ac configure: reject unsupported --with-long-double-64 option [PR122535] 2026-09-02 12:11:59 +05:30
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4 build: Cherry-pick libtool.m4 support for GNU ld *_sol2 emulations 2025-12-29 12:09:35 +01:00
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS Update my email address in MAINTAINERS 2026-09-01 14:33:17 +02:00
MAINTAINERS.yml Update my email address in MAINTAINERS 2026-09-01 14:33:17 +02:00
Makefile.def toplevel: do not make libstdc++ configure wait for libgomp 2026-08-17 14:00:36 +02:00
Makefile.in toplevel: do not make libstdc++ configure wait for libgomp 2026-08-17 14:00:36 +02:00
Makefile.tpl Run the bootstrap object comparison in parallel 2026-08-04 19:07:07 +02:00
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
pyproject.toml Add a pyproject.toml file 2026-08-19 10:51:25 +00:00
README
SECURITY.txt
symlink-tree bugzilla: remove gcc-bugs@ mailing list address 2026-01-09 11:10:38 +01:00
test-driver
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.