summarylogtreecommitdiffstats
path: root/bz90949.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bz90949.patch')
-rw-r--r--bz90949.patch88
1 files changed, 0 insertions, 88 deletions
diff --git a/bz90949.patch b/bz90949.patch
deleted file mode 100644
index e545844c5d7e..000000000000
--- a/bz90949.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-Index: gcc/testsuite/gcc.c-torture/execute/pr90949.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr90949.c (nonexistent)
-+++ gcc/testsuite/gcc.c-torture/execute/pr90949.c (revision 272555)
-@@ -0,0 +1,42 @@
-+void __attribute__ ((noipa, noinline)) my_puts (const char *str) { }
-+
-+void __attribute__ ((noipa, noinline)) my_free (void *p) { }
-+
-+
-+struct Node
-+{
-+ struct Node *child;
-+};
-+
-+struct Node space[2] = { };
-+
-+struct Node * __attribute__ ((noipa, noinline)) my_malloc (int bytes)
-+{
-+ return &space[0];
-+}
-+
-+void
-+walk (struct Node *module, int cleanup)
-+{
-+ if (module == 0)
-+ {
-+ return;
-+ }
-+ if (!cleanup)
-+ {
-+ my_puts ("No cleanup");
-+ }
-+ walk (module->child, cleanup);
-+ if (cleanup)
-+ {
-+ my_free (module);
-+ }
-+}
-+
-+int
-+main ()
-+{
-+ struct Node *node = my_malloc (sizeof (struct Node));
-+ node->child = 0;
-+ walk (node, 1);
-+}
-Index: gcc/tree-ssa-copy.c
-===================================================================
---- gcc/tree-ssa-copy.c (revision 272554)
-+++ gcc/tree-ssa-copy.c (revision 272555)
-@@ -545,13 +545,12 @@
- duplicate_ssa_name_ptr_info (copy_of[i].value,
- SSA_NAME_PTR_INFO (var));
- /* Points-to information is cfg insensitive,
-- but alignment info might be cfg sensitive, if it
-- e.g. is derived from VRP derived non-zero bits.
-- So, do not copy alignment info if the two SSA_NAMEs
-- aren't defined in the same basic block. */
-+ but [E]VRP might record context sensitive alignment
-+ info, non-nullness, etc. So reset context sensitive
-+ info if the two SSA_NAMEs aren't defined in the same
-+ basic block. */
- if (var_bb != copy_of_bb)
-- mark_ptr_info_alignment_unknown
-- (SSA_NAME_PTR_INFO (copy_of[i].value));
-+ reset_flow_sensitive_info (copy_of[i].value);
- }
- else if (!POINTER_TYPE_P (TREE_TYPE (var))
- && SSA_NAME_RANGE_INFO (var)
-Index: gcc/tree-ssanames.c
-===================================================================
---- gcc/tree-ssanames.c (revision 272554)
-+++ gcc/tree-ssanames.c (revision 272555)
-@@ -820,7 +820,12 @@
- {
- /* points-to info is not flow-sensitive. */
- if (SSA_NAME_PTR_INFO (name))
-- mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name));
-+ {
-+ /* [E]VRP can derive context sensitive alignment info and
-+ non-nullness properties. We must reset both. */
-+ mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name));
-+ SSA_NAME_PTR_INFO (name)->pt.null = 1;
-+ }
- }
- else
- SSA_NAME_RANGE_INFO (name) = NULL;