summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/debug
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-07 16:05:55 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-07 16:05:55 +0000
commit910dcf9adc9ed7b92294e0875898c9712e6748ab (patch)
tree407e91934844e7b9fd941aca5c5cc2edbc64dfc2 /gcc/testsuite/gcc.dg/debug
parentdc13fbf7728b60c76951a288856fad8a86863c03 (diff)
downloadgcc-910dcf9adc9ed7b92294e0875898c9712e6748ab.tar.gz
PR debug/49522
* df-problems.c (dead_debug_reset): Remove dead_debug_uses referencing debug insns that have been reset. (dead_debug_insert_before): Don't assert reg is non-NULL, instead return immediately if it is NULL. * gcc.dg/debug/pr49522.c: New test. M gcc/ChangeLog A gcc/testsuite/gcc.dg/debug/pr49522.c M gcc/testsuite/ChangeLog M gcc/df-problems.c git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175987 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/debug')
-rw-r--r--gcc/testsuite/gcc.dg/debug/pr49522.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/debug/pr49522.c b/gcc/testsuite/gcc.dg/debug/pr49522.c
new file mode 100644
index 00000000000..3fa3bfb0e92
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/pr49522.c
@@ -0,0 +1,41 @@
+/* PR debug/49522 */
+/* { dg-do compile } */
+/* { dg-options "-fcompare-debug" } */
+
+int val1 = 0L;
+volatile int val2 = 7L;
+long long val3;
+int *ptr = &val1;
+
+static int
+func1 ()
+{
+ return 0;
+}
+
+static short int
+func2 (short int a, unsigned int b)
+{
+ return !b ? a : a >> b;
+}
+
+static unsigned long long
+func3 (unsigned long long a, unsigned long long b)
+{
+ return !b ? a : a % b;
+}
+
+void
+func4 (unsigned short arg1, int arg2)
+{
+ for (arg2 = 0; arg2 < 2; arg2++)
+ {
+ *ptr = func3 (func3 (10, func2 (val3, val2)), val3);
+ for (arg1 = -14; arg1 > 14; arg1 = func1 ())
+ {
+ *ptr = -1;
+ if (foo ())
+ ;
+ }
+ }
+}