summaryrefslogtreecommitdiff
path: root/libffi/src
AgeCommit message (Collapse)Author
2016-09-04 * src/pa/ffi.c (ffi_struct_type): Put type declaration on separate line.danglin
(ffi_prep_args_pa32): Likewise. (ffi_size_stack_pa32): Likewise. (ffi_prep_cif_machdep): Likewise. (ffi_call): Likewise. Rename to ffi_call_int. Add closure argument and update call to ffi_call_pa32. (ffi_call, ffi_call_go, ffi_prep_go_closure): New. (ffi_closure_inner_pa32): Update to handle go closures. * src/pa/ffitarget.h (FFI_GO_CLOSURES): Define. * src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static chain register (%ret1). (ffi_closure_pa32): Set closure type argument to zero. (ffi_go_closure_pa32): New function. Add unwind data for it. * src/pa/linux.S: Likewise. Use cfi directives for unwind data. * testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for hppa. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239978 138bc75d-0d04-0410-961f-82ee72b054a4
2016-03-17Summary: libffi: define FFI_SIZEOF_JAVA_RAW for aarch64 ILP32schwab
* src/aarch64/ffitarget.h (FFI_SIZEOF_JAVA_RAW) [__ILP32__]: Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234282 138bc75d-0d04-0410-961f-82ee72b054a4
2015-09-30[RS6000] Correct powerpc sysv stack argument accountingamodra
ppc32 starts using the stack for integer arg passing when we run out of integer arg passing registers. Similarly, we start using the stack for floating point args when we run out of floating point registers. The decision on where an integer arg goes does not depend on number of floating point args, nor does the decision on where a floating point arg goes depend on number of integer args. Alignment of stack args also simply depends on number of stack args. This patch untangles the horrible mess we had, with intarg_count being wrongly used to count both integer args and stack words. * src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs, gprs, and stack words separately. (ffi_prep_args_SYSV): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228307 138bc75d-0d04-0410-961f-82ee72b054a4
2015-02-102015-02-10 Andrew Pinski <apinski@cavium.com>pinskia
* src/aarch64/ffitarget.h (ffi_arg): Use unsigned long long for ILP32. (FFI_SIZEOF_ARG): Define to 64 for ILP32. (ffi_sarg): Use signed long long for ILP32. * src/aarch64/sysv.S (PTR_REG): New macro. (PTR_SIZE): New macro. (ffi_closure_SYSV): Load cif, fn and user_data using PTR_REG. (ffi_go_closure_SYSV): Load cif and fn using PTR_REG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220598 138bc75d-0d04-0410-961f-82ee72b054a4
2015-01-28Merge with upstream libffi db1b34b7e1f5e473d17557e454a29933dfecd1afrth
Includes build fixes for Solaris and FreeBSD. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220222 138bc75d-0d04-0410-961f-82ee72b054a4
2015-01-19Merge with upstream libffi 3ac1610aa33c887ea9b14935208943925714a33erth
Includes build fixes for Solaris and Cygwin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219860 138bc75d-0d04-0410-961f-82ee72b054a4
2015-01-13PR libffi/64572rth
* src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin. (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219538 138bc75d-0d04-0410-961f-82ee72b054a4
2015-01-13Fix libjava failures on i686-linuxrth
* src/x86/ffi.c (ffi_raw_call): Fill in frame. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219505 138bc75d-0d04-0410-961f-82ee72b054a4
2015-01-12Merge libffi to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16rth
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219477 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-11 * src/powerpc/linux64.S: Emit .note.GNU-stack even whenjakub
POWERPC64 is not defined. * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215155 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-25 * src/alpha/ffi.c: Do not include stdlib.h.uros
(ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213049 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-13Enable Java on Cygwin-64edlinger
Currently it is not possible to build GCC's libjava support on Cygwin-64. This patch fixes the current build-problems on Cygwin-64 and the most fundamental bugs on that platform. Note you must still add --enable-threads=posix to successfully build the java language support. boehm-gc/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * include/gc_config_macros.h (GC_PTHREADS): Use __CYGWIN__ instead of __CYGWIN32__ here. * win32_threads.c (GC_push_all_stacks): Push all X86_64 registers. (GC_get_thread_stack_base): Get the stack base for X86_64. libffi/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API). * src/x86/ffi.c: Add if defined(__CYGWIN__). * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT. Added SEH information. Fixed formatting. libgcc/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> * unwind-seh.c (_Unwind_Backtrace): Uncommented, finished implementation. libjava/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * configure.host: Added handling for x86_64-*-cygwin/mingw. * boehm.cc (_Jv_GCAttachThread, _Jv_GCDetachThread): Don't compile if GC_WIN32_THREADS is defined. * java/lang/natClass.cc (_Jv_InterfaceAssignableFrom): Rename interface to source_interface. libjava/classpath/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * native/fdlibm/mprec.c (_REENT_CHECK_MP, _REENT_MP_FREELIST, _REENT_MP_P5S, __ULong, __Long): Undefine previous definitions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210386 138bc75d-0d04-0410-961f-82ee72b054a4
2014-03-12libffi/yufeng
* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the main CFA reg; update cfi_rel_offset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208515 138bc75d-0d04-0410-961f-82ee72b054a4
2014-02-17 PR libffi/60073ebotcazou
* src/sparc/v8.S: Assemble only if !SPARC64. * src/sparc/v9.S: Remove obsolete comment. * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9. (V8_ABI_P): New macro. (V9_ABI_P): Likewise. (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64. * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64. (ffi_prep_args_v9): Compile only if SPARC64. (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate. (ffi_prep_cif_machdep): Guard access to nfixedargs field. (ffi_prep_cif_machdep_var): Likewise. (ffi_v9_layout_struct): Compile only if SPARC64. (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings. (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates. (ffi_closure_sparc_inner_v8): Compile only if !SPARC64. (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access to nfixedargs field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207822 138bc75d-0d04-0410-961f-82ee72b054a4
2014-02-13 PR libffi/60073ebotcazou
* src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define. (FFI_EXTRA_CIF_FIELDS): Likewise. (FFI_NATIVE_RAW_API): Move around. * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from... (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core. (ffi_prep_cif_machdep_var): New function. (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in FP registers. * doc/libffi.texi (Introduction): Fix inaccuracy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207763 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-10 * src/powerpc/ffitarget.h: Import from upstream.amodra
* src/powerpc/ffi_powerpc.h: Likewise. * src/powerpc/ffi.c: Likewise. * src/powerpc/ffi_sysv.c: Likewise. * src/powerpc/ffi_linux64.c: Likewise. * src/powerpc/sysv.S: Likewise. * src/powerpc/ppc_closure.S: Likewise. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. * src/types.c: Likewise. * Makefile.am (EXTRA_DIST): Add new src/powerpc files. (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise. * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc. * include/ffi.h.in (ffi_prep_types): Declare. * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types. * configure: Regenerate. * fficonfig.h.in: Regenerate. * Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205844 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-17 * src/powerpc/ppc_closure.S: Don't bl .Luint128.amodra
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204918 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-17PowerPC64 ELFv2 supportamodra
* src/powerpc/ffitarget.h: Import from upstream. * src/powerpc/ffi.c: Likewise. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. * doc/libffi.texi: Likewise. * testsuite/libffi.call/cls_double_va.c: Likewise. * testsuite/libffi.call/cls_longdouble_va.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204917 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-25 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declarationamodra
before statements. (ffi_prep_args64): Support little-endian. (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise. * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise. * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200383 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-22 * src/x86/win64.S: Make use of ffi_closure_win64_innerktietz
symbol pc-relative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196900 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-07 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):davek
Move default definition outside enclosing #if scope. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196527 138bc75d-0d04-0410-961f-82ee72b054a4
2013-02-062013-02-06 Andreas Tobler <andreast@fgznet.ch>andreast
* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195812 138bc75d-0d04-0410-961f-82ee72b054a4
2012-12-26libffi mergegreen
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194722 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-31 * src/powerpc/linux64_closure.S: Add new ABI support.amodra
* src/powerpc/linux64.S: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193015 138bc75d-0d04-0410-961f-82ee72b054a4
2012-08-262012-08-26 Andrew Pinski <apinski@cavium.com>pinskia
PR libffi/53014 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with soft-float. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190696 138bc75d-0d04-0410-961f-82ee72b054a4
2012-08-08 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,uros
just return FFI_BAD_ABI when things are wrong. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190230 138bc75d-0d04-0410-961f-82ee72b054a4
2012-07-18Define FFI_SIZEOF_JAVA_RAW to 4 for x32hjl
PR libffi/53982 PR libffi/53973 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32. (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189626 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-02 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.bergner
Silence casting pointer to integer of different size warning. Delete goto to previously deleted label. (ffi_call): Silence possibly undefined warning. (ffi_closure_helper_SYSV): Declare variable type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186091 138bc75d-0d04-0410-961f-82ee72b054a4
2012-03-29Restore trampled commitsgreen
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185955 138bc75d-0d04-0410-961f-82ee72b054a4
2012-03-13 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,kkojima
just return FFI_BAD_ABI when things are wrong. * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185361 138bc75d-0d04-0410-961f-82ee72b054a4
2012-03-09 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64dje
change to return value of ffi_closure_helper_DARWIN and load type from return type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185152 138bc75d-0d04-0410-961f-82ee72b054a4
2012-03-04Merge upstream libffigreen
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184897 138bc75d-0d04-0410-961f-82ee72b054a4
2012-02-23 PR libffi/52221ktietz
* src/x86/ffi.c (ffi_closure_raw_THISCALL): New prototype. (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for thiscall-convention. (ffi_raw_call): Use ffi_prep_args_raw. * src/x86/win32.S (ffi_closure_raw_THISCALL): Add implementation for stub. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184526 138bc75d-0d04-0410-961f-82ee72b054a4
2012-02-13 PR libffi/52221ktietz
* src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall support for X86_WIN32. (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184155 138bc75d-0d04-0410-961f-82ee72b054a4
2012-02-11 * src/sparc/v9.S (STACKFRAME): Bump to 176.ebotcazou
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184129 138bc75d-0d04-0410-961f-82ee72b054a4
2012-02-08 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32ktietz
also FFI_THISCALL. * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype. (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code. (ffi_prep_closure_loc): Add FFI_THISCALL support. * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size. * src/x86/win32.S (ffi_closure_THISCALL): New closure code for thiscall-calling convention. * testsuite/libffi.call/closure_thiscall.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184021 138bc75d-0d04-0410-961f-82ee72b054a4
2012-01-29 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add newktietz
argument to prototype for specify calling-convention. (ffi_call): Add support for stdcall/thiscall convention. (ffi_prep_args): Likewise. (ffi_raw_call): Likewise. * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and FFI_FASTCALL. * src/x86/win32.S (_ffi_call_win32): Add support for fastcall/thiscall calling-convention calls. * testsuite/libffi.call/fastthis1_win32.c: New test. * testsuite/libffi.call/fastthis2_win32.c: New test. * testsuite/libffi.call/fastthis3_win32.c: New test. * testsuite/libffi.call/strlen2_win32.c: New test. * testsuite/libffi.call/many2_win32.c: New test. * testsuite/libffi.call/struct1_win32.c: New test. * testsuite/libffi.call/struct2_win32.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183676 138bc75d-0d04-0410-961f-82ee72b054a4
2012-01-23* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plainschwab
mc68000. Test for __HAVE_68881__ in addition to __MC68881__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183451 138bc75d-0d04-0410-961f-82ee72b054a4
2012-01-19 PR rtl-optimization/48496jakub
* src/ia64/ffi.c (ffi_call): Fix up aliasing violations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183301 138bc75d-0d04-0410-961f-82ee72b054a4
2011-12-072011-12-07 Andrew Pinski <apinski@cavium.com>pinskia
* src/mips/n32.S: Add ".set mips4". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182091 138bc75d-0d04-0410-961f-82ee72b054a4
2011-09-04 PR libffi/49594iains
* src/powerpc/darwin_closure.S (stubs): Make the stub binding helper reference track the architecture pointer size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178512 138bc75d-0d04-0410-961f-82ee72b054a4
2011-08-252011-08-25 Andrew Haley <aph@redhat.com>aph
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions. * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178060 138bc75d-0d04-0410-961f-82ee72b054a4
2011-07-112011-07-11 Andrew Haley <aph@redhat.com>aph
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176172 138bc75d-0d04-0410-961f-82ee72b054a4
2011-04-29 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):ro
Define. Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173151 138bc75d-0d04-0410-961f-82ee72b054a4
2011-02-082011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>joel
* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing. Handle case when CPU variant does not have long double support. * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire, and cores with soft floating point. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169938 138bc75d-0d04-0410-961f-82ee72b054a4
2011-02-082011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>joel
* configure.ac: Add mips*-*-rtems* support. * configure: Regenerate. * src/mips/ffitarget.h: Ensure needed constants are available for targets which do not have sgidefs.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169936 138bc75d-0d04-0410-961f-82ee72b054a4
2011-01-03Update Copyright years for files modified in 2010.jakub
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168438 138bc75d-0d04-0410-961f-82ee72b054a4
2010-12-18libffi:iains
PR libffi/29152 PR libffi/42378 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation, update comments. * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New, (FFI_TRAMPOLINE_SIZE): Update for Darwin64. * src/powerpc/darwin.S: Provide Darwin64 implementation, update comments. * src/powerpc/ffi_darwin.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168016 138bc75d-0d04-0410-961f-82ee72b054a4
2010-12-032010-12-03 Chung-Lin Tang <cltang@codesourcery.com>cltang
* src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive. (ffi_closure_VFP): Same. (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp' directive. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167434 138bc75d-0d04-0410-961f-82ee72b054a4
2010-11-292010-11-29 Richard Henderson <rth@redhat.com>ro
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define. (.eh_frame): Use FDE_ENCODING. (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167251 138bc75d-0d04-0410-961f-82ee72b054a4