aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.cc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-01-19 00:37:18 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-30 09:12:17 +0200
commita91b145bd6903aa526de8f5c7b1586045b574e31 (patch)
tree60240994c7f7fe4e8e6449d05a8b6eddaaf4e8fe /gcc/ada/gcc-interface/decl.cc
parenta0510207ba349ebb73a5e95d3f3b6274889cdcc6 (diff)
downloadgcc-a91b145bd6903aa526de8f5c7b1586045b574e31.zip
gcc-a91b145bd6903aa526de8f5c7b1586045b574e31.tar.gz
gcc-a91b145bd6903aa526de8f5c7b1586045b574e31.tar.bz2
ada: Make use of Cannot_Be_Superflat flag on N_Range nodes
gcc/ada/ * gcc-interface/decl.cc (range_cannot_be_superflat): Return true immediately if Cannot_Be_Superflat is set. * gcc-interface/misc.cc (gnat_post_options): Do not override the -Wstringop-overflow setting.
Diffstat (limited to 'gcc/ada/gcc-interface/decl.cc')
-rw-r--r--gcc/ada/gcc-interface/decl.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc
index ec61593..53a1124 100644
--- a/gcc/ada/gcc-interface/decl.cc
+++ b/gcc/ada/gcc-interface/decl.cc
@@ -6673,6 +6673,10 @@ range_cannot_be_superflat (Node_Id gnat_range)
Node_Id gnat_scalar_range;
tree gnu_lb, gnu_hb, gnu_lb_minus_one;
+ /* This is the easy case. */
+ if (Cannot_Be_Superflat (gnat_range))
+ return true;
+
/* If the low bound is not constant, take the worst case by finding an upper
bound for its type, repeatedly if need be. */
while (Nkind (gnat_lb) != N_Integer_Literal