aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-09-30 09:07:36 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-10-02 12:56:02 +0200
commit02f4efe3c12cf7ef54e5a71b11044c15be5c7fab (patch)
tree58b00ef6c897ac6cca8ca253a1f891030e6b3f0d /gcc
parent4ba4165d66b18d7c5b8af02ecdf38bfa0690c106 (diff)
downloadgcc-02f4efe3c12cf7ef54e5a71b11044c15be5c7fab.zip
gcc-02f4efe3c12cf7ef54e5a71b11044c15be5c7fab.tar.gz
gcc-02f4efe3c12cf7ef54e5a71b11044c15be5c7fab.tar.bz2
tree-optimization/113197 - bougs assert in PTA
PTA asserts that EAF_NO_DIRECT_READ is not set when flags are set consistently which doesn't make sense. The following removes the assert. PR tree-optimization/113197 * tree-ssa-structalias.cc (handle_call_arg): Remove bougs assert. * gcc.dg/lto/pr113197_0.c: New testcase. * gcc.dg/lto/pr113197_1.c: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/lto/pr113197_0.c15
-rw-r--r--gcc/testsuite/gcc.dg/lto/pr113197_1.c3
-rw-r--r--gcc/tree-ssa-structalias.cc1
3 files changed, 18 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/lto/pr113197_0.c b/gcc/testsuite/gcc.dg/lto/pr113197_0.c
new file mode 100644
index 0000000..293c820
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/pr113197_0.c
@@ -0,0 +1,15 @@
+/* { dg-lto-do link } */
+/* { dg-lto-options { { -O -flto -fpie } } } */
+/* { dg-extra-ld-options { -r -nostdlib -flinker-output=nolto-rel } } */
+
+enum a { b } register_dccp();
+void c();
+void __attribute__((noreturn)) exit_error(enum a d) {
+ __builtin_va_list va;
+ __builtin_va_end(va);
+ if (d)
+ c();
+ c();
+ __builtin_exit(1);
+}
+int main() { register_dccp(); }
diff --git a/gcc/testsuite/gcc.dg/lto/pr113197_1.c b/gcc/testsuite/gcc.dg/lto/pr113197_1.c
new file mode 100644
index 0000000..30bf6f7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/pr113197_1.c
@@ -0,0 +1,3 @@
+int a;
+void exit_error();
+void register_dccp() { exit_error(a); }
diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc
index 54c4818..73ba5aa 100644
--- a/gcc/tree-ssa-structalias.cc
+++ b/gcc/tree-ssa-structalias.cc
@@ -4194,7 +4194,6 @@ handle_call_arg (gcall *stmt, tree arg, vec<ce_s> *results, int flags,
{
make_transitive_closure_constraints (tem);
callarg_transitive = true;
- gcc_checking_assert (!(flags & EAF_NO_DIRECT_READ));
}
/* If necessary, produce varinfo for indirect accesses to ARG. */