diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99450.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99450.patch | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99450.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99450.patch deleted file mode 100644 index 49fa07fca2..0000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99450.patch +++ /dev/null @@ -1,104 +0,0 @@ - 2010-12-21 Ulrich Weigand <uweigand@de.ibm.com> - - LP: #662324 - Backport from mainline: - - 2010-12-17 Dodji Seketeli <dodji@redhat.com> - - gcc/ - * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug - info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use - that underlying type instead. - - gcc/testsuite/ - * g++.dg/debug/dwarf2/self-ref-1.C: New test. - * g++.dg/debug/dwarf2/self-ref-2.C: Likewise. - -=== modified file 'gcc/dwarf2out.c' ---- old/gcc/dwarf2out.c 2010-10-04 00:50:43 +0000 -+++ new/gcc/dwarf2out.c 2010-12-21 18:46:10 +0000 -@@ -18993,6 +18993,16 @@ - if (type == NULL_TREE || type == error_mark_node) - return; - -+ if (TYPE_NAME (type) != NULL_TREE -+ && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL -+ && is_redundant_typedef (TYPE_NAME (type)) -+ && DECL_ORIGINAL_TYPE (TYPE_NAME (type))) -+ /* The DECL of this type is a typedef we don't want to emit debug -+ info for but we want debug info for its underlying typedef. -+ This can happen for e.g, the injected-class-name of a C++ -+ type. */ -+ type = DECL_ORIGINAL_TYPE (TYPE_NAME (type)); -+ - /* If TYPE is a typedef type variant, let's generate debug info - for the parent typedef which TYPE is a type of. */ - if (TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL - -=== added file 'gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C' ---- old/gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C 2010-12-21 18:46:10 +0000 -@@ -0,0 +1,28 @@ -+// Origin: PR debug/45088 -+// { dg-do compile } -+// { dg-options "-g -dA" } -+// { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_pointer_type\\)\[\n\r\]{1,2}\[^\n\r\]*DW_AT_byte_size\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type" 4 } } -+ -+struct A -+{ -+ virtual ~A(); -+}; -+ -+struct B : public A -+{ -+ virtual ~B(){} -+}; -+ -+struct C : public B -+{ -+ A* a1; -+}; -+ -+int -+main() -+{ -+ C c; -+ c.a1 = 0; -+ return 0; -+} -+ - -=== added file 'gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C' ---- old/gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C 2010-12-21 18:46:10 +0000 -@@ -0,0 +1,29 @@ -+// Origin: PR debug/45088 -+// { dg-do compile } -+// { dg-options "-g -dA" } -+// { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_pointer_type\\)\[\n\r\]{1,2}\[^\n\r\]*DW_AT_byte_size\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type" 4 } } -+ -+template<class T> -+struct A -+{ -+ virtual ~A(); -+}; -+ -+struct B : public A<int> -+{ -+ virtual ~B(){} -+}; -+ -+struct C : public B -+{ -+ A<int>* a1; -+}; -+ -+int -+main() -+{ -+ C c; -+ c.a1 = 0; -+ return 0; -+} -+ - |