[Bug gas/6926] Macro number feature \@ conflicting with @ in line_separator_chars
--- Additional Comments From nickc at redhat dot com 2008-10-06 08:18 --- Patch checked in along with this changelog entry. gas/ChangeLog PR 6926 * read.c (get_line_sb): Renamed to get_non_macro_line_sb. (_find_end_of_line): Add extra parameter indicating if the line is inside a macro. If it is then do not allow the @ character to be treated as a line separator character. (read_a_source): Update use of _find_end_of_line. (find_end_of_line): Likewise. (s_irp): Update use of get_line_sb. (s_macro): Likewise. (do_repeat): Likewise. (get_line_sb): New function. Like the old version of get_line_sb except that it takes an extra parameter indicating whether the line is inside a macro. (get_macro_line_sb): New function. -- What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://sourceware.org/bugzilla/show_bug.cgi?id=6926 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug ld/6945] New: ld -r severely broken on 64-bit mingw / pe-x86-64
x86_64-pc-mingw32-ld -r runs without warnings, but gcc jump tables in the resulting .o file are broken. At runtime a switch() that references a jump table now branches off to la-la land and the process crashes. My x86_64-pc-mingw32 cross toolchain is composed of binutils-2.19.50.20081006 and gcc-4.4.0 20080926, with runtime libs from mingw-w64-snapshot-20080917. The cross toolchain was compiled by a i686-pc-cygwin native toolchain composed of binutils-2.18.91 and gcc-4.3.2. The host runs Win XP 64 Pro. To reproduce, compile and link the file below (bug.c): 1. x86_64-pc-mingw32-gcc -O -c bug.c 2. x86_64-pc-mingw32-ld -r -o bug2.o bug.o 3. x86_64-pc-mingw32-gcc -o bug bug.o 4. x86_64-pc-mingw32-gcc -o bug2 bug2.o Running ./bug works and produces output like: L90 == 0040165A L95 == 00403000 L95.L90_minus_L95 == -6566, L95 + -6566 == 0040165A However, running ./bug2 instead fails with: L90 == 0040165A L95 == 00403000 L95.L90_minus_L95 == -6406, L95 + -6406 == 004016FA ERROR This error does not occur when compiling for 32-bit mingw, or when compiling for Linux or Solaris (32- or 64-bit x86). The source code for bug.c follows below. The inline asm() block constructs a gcc switch() jump table in "pic" mode: entries aren't code lables but the differences from the table itself to the code labels. The rest of the code just verifies the contents of the jump table. #include struct L95 {/* mimics a gcc -fpic jump table */ int L90_minus_L95; }; extern const struct L95 L95; struct L95info {/* provides the actual target labels */ void *L90; }; struct L95info L95info; void __attribute__((noinline)) foo(void) { asm( "leaq _L95info(%rip), %rax\n\t" "leaq L90(%rip), %rdx\n\t" "movq %rdx, 0(%rax)\n\t" ".section .rdata,\"dr\"\n\t" ".align 4\n" "_L95:\n\t" ".long L90-_L95\n\t" ".text\n\t" "movl $1, %eax\n" "L90:\n\t" "addl %eax, %eax"); } int main(void) { int diff; void *result; foo(); printf("L90 == %p\n", L95info.L90); printf("L95 == %p\n", &L95); diff = L95.L90_minus_L95; result = (char*)&L95 + diff; printf("L95.L90_minus_L95 == %d, L95 + %d == %p\n", diff, diff, result); if (result != L95info.L90) { printf("ERROR\n"); return 1; } return 0; } -- Summary: ld -r severely broken on 64-bit mingw / pe-x86-64 Product: binutils Version: 2.19 Status: NEW Severity: critical Priority: P2 Component: ld AssignedTo: unassigned at sources dot redhat dot com ReportedBy: mikpe at it dot uu dot se CC: bug-binutils at gnu dot org GCC host triplet: i686-pc-cygwin GCC target triplet: x86_64-pc-mingw32 http://sourceware.org/bugzilla/show_bug.cgi?id=6945 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug binutils/6948] New: [Regression] Uninitialised variables in cp-demangle.c
[EMAIL PROTECTED] binutils]$ valgrind --tool=memcheck ./cxxfilt -i _ZTIPDi ==22075== Memcheck, a memory error detector. ==22075== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==22075== Using LibVEX rev 1575, a library for dynamic binary translation. ==22075== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==22075== Using valgrind-3.1.1, a dynamic binary instrumentation framework. ==22075== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==22075== For more details, rerun with: -v ==22075== ==22075== Conditional jump or move depends on uninitialised value(s) ==22075==at 0x4C4ECD: d_make_comp (cp-demangle.c:814) ==22075==by 0x4C6975: cplus_demangle_type (cp-demangle.c:2027) ==22075==by 0x4C60AD: d_special_name (cp-demangle.c:1649) ==22075==by 0x4C5330: d_encoding (cp-demangle.c:1053) ==22075==by 0x4C51E9: cplus_demangle_mangled_name (cp-demangle.c:986) ==22075==by 0x4CA37E: d_demangle_callback (cp-demangle.c:4276) ==22075==by 0x4CA433: d_demangle (cp-demangle.c:4312) ==22075==by 0x4CA498: cplus_demangle_v3 (cp-demangle.c:4469) ==22075==by 0x4BE0AF: cplus_demangle (cplus-dem.c:862) ==22075==by 0x40242B: demangle_it (cxxfilt.c:63) ==22075==by 0x4026C2: main (cxxfilt.c:227) ==22075== ==22075== Conditional jump or move depends on uninitialised value(s) ==22075==at 0x4C821A: d_print_comp (cp-demangle.c:3076) ==22075==by 0x4C8BC3: d_print_comp (cp-demangle.c:3425) ==22075==by 0x4C895E: d_print_comp (cp-demangle.c:3327) ==22075==by 0x4C80BC: cplus_demangle_print_callback (cp-demangle.c:3033) ==22075==by 0x4CA3C4: d_demangle_callback (cp-demangle.c:4289) ==22075==by 0x4CA433: d_demangle (cp-demangle.c:4312) ==22075==by 0x4CA498: cplus_demangle_v3 (cp-demangle.c:4469) ==22075==by 0x4BE0AF: cplus_demangle (cplus-dem.c:862) ==22075==by 0x40242B: demangle_it (cxxfilt.c:63) ==22075==by 0x4026C2: main (cxxfilt.c:227) ==22075== ==22075== Use of uninitialised value of size 8 ==22075==at 0x4C824E: d_print_comp (cp-demangle.c:3084) ==22075==by 0x4C8BC3: d_print_comp (cp-demangle.c:3425) ==22075==by 0x4C895E: d_print_comp (cp-demangle.c:3327) ==22075==by 0x4C80BC: cplus_demangle_print_callback (cp-demangle.c:3033) ==22075==by 0x4CA3C4: d_demangle_callback (cp-demangle.c:4289) ==22075==by 0x4CA433: d_demangle (cp-demangle.c:4312) ==22075==by 0x4CA498: cplus_demangle_v3 (cp-demangle.c:4469) ==22075==by 0x4BE0AF: cplus_demangle (cplus-dem.c:862) ==22075==by 0x40242B: demangle_it (cxxfilt.c:63) ==22075==by 0x4026C2: main (cxxfilt.c:227) _ZTIPDi ==22075== ==22075== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 4 from 1) ==22075== malloc/free: in use at exit: 0 bytes in 0 blocks. ==22075== malloc/free: 1 allocs, 1 frees, 16 bytes allocated. ==22075== For counts of detected errors, rerun with: -v ==22075== All heap blocks were freed -- no leaks are possible. [EMAIL PROTECTED] binutils]$ -- Summary: [Regression] Uninitialised variables in cp-demangle.c Product: binutils Version: 2.20 (HEAD) Status: NEW Severity: normal Priority: P2 Component: binutils AssignedTo: unassigned at sources dot redhat dot com ReportedBy: hjl dot tools at gmail dot com CC: bug-binutils at gnu dot org http://sourceware.org/bugzilla/show_bug.cgi?id=6948 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug binutils/6948] [Regression] Uninitialised variables in cp-demangle.c
-- What|Removed |Added CC||pinskia at gcc dot gnu dot ||org http://sourceware.org/bugzilla/show_bug.cgi?id=6948 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug binutils/6948] [Regression] Uninitialised variables in cp-demangle.c
--- Additional Comments From hjl dot tools at gmail dot com 2008-10-07 03:59 --- Fixed by cp-demangle.c update. -- What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://sourceware.org/bugzilla/show_bug.cgi?id=6948 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils