Kaz Kojima [Fri, 14 Nov 2008 11:46:55 +0000 (11:46 +0000)]
sh.h (OPTIMIZATION_OPTIONS): Revert last change.
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
(OVERRIDE_OPTIONS): Likewise.
* gcc.target/sh/pr37514.c: Remove.
From-SVN: r141855
Uros Bizjak [Fri, 14 Nov 2008 11:14:49 +0000 (12:14 +0100)]
re PR testsuite/37517 (gcc.target/i386/quad-sse.c fails with -fPIC)
PR testsuite/37517
* gcc.target/i386/quad-sse.c: Tighten scan-assembler-not pattern.
From-SVN: r141854
Maxim Kuvyrkov [Fri, 14 Nov 2008 10:49:06 +0000 (10:49 +0000)]
re PR target/36134 (GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used)
2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
Gunnar Von Boehn <gunnar@genesi-usa.com>
gcc/
PR target/36134
* config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
the shorter LEA insn over ADD.L where possible.
gcc/testsuite/
PR target/36134
* gcc.target/m68k/pr36134.c: New test.
Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
Co-Authored-By: Gunnar Von Boehn <gunnar@genesi-usa.com>
From-SVN: r141853
Uros Bizjak [Fri, 14 Nov 2008 09:47:23 +0000 (10:47 +0100)]
Add missing commit part:
* gcc.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
<xmmintrin.h>, define __m64 and __m128 directly.
From-SVN: r141852
Thomas Schwinge [Fri, 14 Nov 2008 09:24:06 +0000 (10:24 +0100)]
configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd systems...
2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
* configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
systems, which are assumend to always provide SSP-support in glibc.
* configure: Regenerate.
From-SVN: r141851
Thomas Schwinge [Fri, 14 Nov 2008 09:20:54 +0000 (10:20 +0100)]
configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*' case.
2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
* configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/kFreeBSD,
GNU/kNetBSD systems in the `*-*-linux*' case.
* configure: Regenerate.
From-SVN: r141850
Jakub Jelinek [Fri, 14 Nov 2008 07:50:52 +0000 (08:50 +0100)]
re PR middle-end/36125 (FAIL: 26_numerics/complex/13450.cc: ICE in verify_gimple_expr, at tree-cfg.c:3962)
PR middle-end/36125
* function.c (gimplify_parameters): For callee copies parameters,
move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
* gcc.c-torture/compile/pr36125.c: New test.
From-SVN: r141848
Jason Merrill [Fri, 14 Nov 2008 00:38:20 +0000 (19:38 -0500)]
re PR c++/37932 (narrowing conversion with -std=c++0x)
PR c++/37932
* typeck2.c (process_init_constructor_record): Update bitfield
handling.
(check_narrowing): Update bitfield handling, print source type.
From-SVN: r141843
GCC Administrator [Fri, 14 Nov 2008 00:17:03 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r141841
Thomas Schwinge [Thu, 13 Nov 2008 23:28:46 +0000 (00:28 +0100)]
re PR target/28102 (GNU Hurd bootstrap error: 'OPTION_GLIBC' undeclared)
2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
PR target/28102
* config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*', x86
parts into the `i[34567]86-*-linux*' and parts that are independent of
the processor architecture into the `*-*-linux*' cases.
(*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
* config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
(TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
[TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
* config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
(HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
(LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
From-SVN: r141838
Uros Bizjak [Thu, 13 Nov 2008 22:54:23 +0000 (23:54 +0100)]
* testsuite/ChangeLog: Add missing ChangeLog entry.
From-SVN: r141837
Richard Sandiford [Thu, 13 Nov 2008 22:49:37 +0000 (22:49 +0000)]
loongson-muldiv-1.c: New test.
gcc/testsuite/
* gcc.target/mips/loongson-muldiv-1.c: New test.
* gcc.target/mips/loongson-muldiv-2.c: Likewise.
From-SVN: r141836
Ruan Beihong [Thu, 13 Nov 2008 22:48:39 +0000 (22:48 +0000)]
loongson.md (<u>div<mode>3, [...]): New patterns.
gcc/
2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
* config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
* config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
(ls2_idiv): Likewise idiv3.
(ls2_prefetch): New reservation.
* config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
* config/mips/mips.md (type): Add imul3nc and idiv3.
(length): Handle idiv3.
(any_mod): New code_iterator.
(u): Handle MOD and UMOD.
(mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
(prefetch): Handle TARGET_LOONGSON_2EF.
From-SVN: r141835
Joseph Myers [Thu, 13 Nov 2008 21:21:49 +0000 (21:21 +0000)]
* id.po: New.
From-SVN: r141831
Steve Ellcey [Thu, 13 Nov 2008 21:06:38 +0000 (21:06 +0000)]
re PR libgomp/37938 (libgomp testsuite failures on ia64-linux)
PR libgomp/37938
* config/linux/ia64/mutex.h: New.
From-SVN: r141830
Jakub Jelinek [Thu, 13 Nov 2008 21:04:32 +0000 (22:04 +0100)]
re PR debug/27017 (Debug information for static local class members are not emitted)
PR c++/27017
* dwarf2out.c (prune_unused_types_walk_local_classes): New function.
(prune_unused_types_walk): Call it for non-perennial local classes.
Set die_mark to 2 if recursing on children. If die_mark is 1 on
entry, just set it to 2 and recurse on children, don't walk attributes
again.
* g++.dg/debug/dwarf2/localclass1.C: New test.
* g++.dg/debug/dwarf2/localclass2.C: New test.
From-SVN: r141829
Martin Michlmayr [Thu, 13 Nov 2008 18:47:18 +0000 (18:47 +0000)]
c-common.c (warn_about_parentheses): Add missing whitespace
in warning.
From-SVN: r141826
Uros Bizjak [Thu, 13 Nov 2008 18:34:05 +0000 (19:34 +0100)]
struct-layout-1_generate.c (dg-options): Add -mno-mmx for i?86-*-* and x86_64-*-* targets
* gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mno-mmx
for i?86-*-* and x86_64-*-* targets
* g++.dg/compat/struct-layout-1_generate.c (dg-options): Add
-fno-common for *-*-darwin* *-*-mingw32* *-*-cygwin* targets.
From-SVN: r141825
Paul Brook [Thu, 13 Nov 2008 15:19:02 +0000 (15:19 +0000)]
invoke.texi: Document --fix-cortex-m3.
2008-11-13 Paul Brook <paul@codesourcery.com>
gcc/
* doc/invoke.texi: Document --fix-cortex-m3.
* config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
Cortex-M3 cpu is selected.
(output_move_double): Avoid overlapping base register and first
destination register when fix_cm3_ldrd.
* config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
From-SVN: r141822
Olivier Hainque [Thu, 13 Nov 2008 14:43:23 +0000 (14:43 +0000)]
decl.c (gnat_to_gnu_entity): Turn Ada Pure on subprograms back into GCC CONST when...
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
Turn Ada Pure on subprograms back into GCC CONST when eh constructs
are explicit to the middle-end. Tidy.
testsuite/
* gnat.dg/test_raise_from_pure.adb: Adjust to match revised intent.
* gnat.dg/wrap_raise_from_pure.ad[bs]: Remove.
* gnat.dg/handle_raise_from_pure.adb: New test.
From-SVN: r141821
Jakub Jelinek [Thu, 13 Nov 2008 14:42:39 +0000 (15:42 +0100)]
re PR bootstrap/38100 (gcc fails to compile with (undefined symbol) gimple_check_failed error)
PR bootstrap/38100
* gimple.h (gimple_range_check_failed): Remove prototype.
* gimple.c (gimple_check_failed): Don't check GCC_VERSION
in guarding #if.
(gimple_range_check_failed): Removed.
From-SVN: r141820
Dodji Seketeli [Thu, 13 Nov 2008 10:55:01 +0000 (11:55 +0100)]
Fix ChangeLog entry:
PR debug/27574
* cgraph.h: New abstract_and_needed member to struct cgraph_node.
* cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
- which clones are reachable - as "abstract and needed".
* cgraph.c (cgraph_release_function_body): If a node is
"abstract and needed", do not release its DECL_INITIAL() content
that will be needed to emit debug info.
From-SVN: r141819
Andrew Haley [Thu, 13 Nov 2008 10:26:51 +0000 (10:26 +0000)]
re PR bootstrap/38088 (gcc fails to compile with undefined symbol: __LONG_LONG_MAX__ error)
PR bootstrap/38088
* mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
__LONG_LONG_MAX__.
From-SVN: r141818
GCC Administrator [Thu, 13 Nov 2008 00:17:00 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r141816
Paolo Carlini [Thu, 13 Nov 2008 00:06:55 +0000 (00:06 +0000)]
re PR libstdc++/38000 (System header files not found once -isystem /usr/include is used)
2008-11-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/38000
* include/c_global/csignal: Do not use include_next.
* include/c_global/cstdlib: Likewise.
* include/c_global/cstdio: Likewise.
* include/c_global/cstdarg: Likewise.
* include/c_global/cctype: Likewise.
* include/c_global/cerrno: Likewise.
* include/c_global/cmath: Likewise.
* include/c_global/clocale: Likewise.
* include/c_global/climits: Likewise.
* include/c_global/cassert: Likewise.
* include/c_global/csetjmp: Likewise.
* include/c_global/cwchar: Likewise.
* include/c_global/cfloat: Likewise.
* include/c_global/cstdbool: Likewise.
* include/c_global/cstring: Likewise.
* include/c_global/cstddef: Likewise.
* include/c_global/cwctype: Likewise.
* include/tr1/cstdbool: Likewise.
* include/tr1_impl/cinttypes: Do not include <inttypes.h>.
* include/c_global/cinttypes: Do it here.
* include/tr1/cinttypes: Likewise.
* include/tr1_impl/cfenv: Do not include <fenv.h>.
* include/c_global/cfenv: Do it here.
* include/tr1/cfenv: Likewise.
* include/tr1_impl/cstdint: Do not include <stdint.h>.
* include/c_global/cstdint: Do it here.
* include/tr1/cstdint: Likewise.
* include/c_compatibility/fenv.h: Include <tr1_impl/cfenv>.
* include/c_compatibility/stdint.h: Include <tr1_impl/cstdint>.
* include/c_compatibility/inttypes.h: Include <tr1_impl/cinttypes>.
* include/c_compatibility/math.h: Minor tweak, add comment.
From-SVN: r141812
Tobias Burnus [Wed, 12 Nov 2008 22:27:10 +0000 (23:27 +0100)]
re PR fortran/38094 (gfortran.dg/private_type_4.f90 -O doesn't work)
2008-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/38094
* gfortran.dg/private_type_4.f90: Fix dg-error pattern.
From-SVN: r141811
Jakub Jelinek [Wed, 12 Nov 2008 22:18:03 +0000 (23:18 +0100)]
re PR c++/36478 (warning not emitted when code expanded from macro)
PR c++/36478
Revert:
2007-05-07 Mike Stump <mrs@apple.com>
* doc/invoke.texi (Warning Options): Document that -Wempty-body
also checks for and while statements in C++.
Revert:
2007-05-07 Mike Stump <mrs@apple.com>
* parser.c (check_empty_body): Add.
(cp_parser_iteration_statement): Add call to check_empty_body.
* g++.old-deja/g++.mike/empty.C: Remove.
From-SVN: r141810
Dodji Seketeli [Wed, 12 Nov 2008 21:57:44 +0000 (21:57 +0000)]
re PR debug/27574 (MIssing debug info at -O0 for a local variable in a C++ constructor)
gcc/ChangeLog:
2008-11-12 Dodji Seketeli <dodji@redhat.com>
PR debug/27574
* cgraph.h: New abstract_and_needed member to struct cgraph_node.
* cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
- which clones are reachable - as "abstract and needed".
* cgraph.c (cgraph_release_function_body): If a node is "abstract and needed",
do not release its DECL_INITIAL() content because that will be needed to emit
debug info.
gcc/testsuite/ChangeLog:
2008-11-12 Dodji Seketeli <dodji@redhat.com>
PR debug/27574
* g++.dg/debug/dwarf2/local-var-in-contructor.C: New test.
From-SVN: r141807
Eric Botcazou [Wed, 12 Nov 2008 21:48:59 +0000 (21:48 +0000)]
20081112-1.c: New test.
* gcc.c-torture/execute/
20081112-1.c: New test.
* gnat.dg/concat1.adb: Likewise.
* gnat.dg/concat1_pkg.ad[sb]: New helper.
From-SVN: r141806
Steve Ellcey [Wed, 12 Nov 2008 21:37:34 +0000 (21:37 +0000)]
re PR target/27880 (undefined reference to `_Unwind_GetIPInfo')
PR target/27880
* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
to set HAVE_GETIPINFO.
* aclocal.m4: Include ../config/unwind_ipinfo.m4.
* configure: Regenerate.
* config.in: Regenerate.
From-SVN: r141805
Steve Ellcey [Wed, 12 Nov 2008 21:35:46 +0000 (21:35 +0000)]
re PR target/27880 (undefined reference to `_Unwind_GetIPInfo')
PR target/27880
* config/unwind_ipinfo.m4 (GCC_CHECK_UNWIND_GETIPINFO): Change from
link test to target based test.
* libstdc++/v3/configure.ac: Move call to GCC_CHECK_UNWIND_GETIPINFO.
* libstdc++/v3/configure: Regenerate.
* libjava/configure: Regenerate.
From-SVN: r141804
Jack Howarth [Wed, 12 Nov 2008 21:33:34 +0000 (21:33 +0000)]
re PR bootstrap/38010 (gcc/config.gcc needs adjustment for darwin10)
2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
PR bootstrap/38010
* gcc/config.gcc: Use darwin9.h on darwin10 as well.
From-SVN: r141803
Jakub Jelinek [Wed, 12 Nov 2008 20:56:41 +0000 (21:56 +0100)]
revert: gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
Revert:
2008-10-21 Jakub Jelinek <jakub@redhat.com>
* gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
INTEGER_CSTs.
From-SVN: r141802
Jakub Jelinek [Wed, 12 Nov 2008 20:55:13 +0000 (21:55 +0100)]
re PR libgcj/33764 (gij is built as 32-bit binary when building multilib gcc)
PR libgcj/33764
libjava/
* configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
* Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
instead of bin_PROGRAMS for binaries.
* configure: Regenerated.
* Makefile.in: Regenerated.
libjava/classpath/
* configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
* tools/Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
instead of bin_PROGRAMS for binaries.
* configure: Regenerated.
* tools/Makefile.in: Regenerated.
From-SVN: r141801
Jason Merrill [Wed, 12 Nov 2008 20:50:45 +0000 (15:50 -0500)]
re PR c++/38007 (g++ instantiate same operator twice due to bitfield in -O0 mode, causing symbol already defined assembler error)
PR c++/38007
gcc/cp/
* typeck.c (cp_build_modify_expr): Update bitfield handling.
gcc/
* c-common.c (c_common_signed_or_unsigned_type): Remove C++
special casing.
gcc/testsuite/
* g++.dg/conversion/bitfield10.C: New test.
* g++.dg/warn/pr35635.C (func1): Accept additional warning.
* g++.old-deja/g++.mike/enum1.C: Expect warn about assignment.
* g++.dg/expr/bitfield9.C: Pass -Wno-overflow.
From-SVN: r141800
Anatoly Sokolov [Wed, 12 Nov 2008 20:29:54 +0000 (23:29 +0300)]
avr.c (avr_mcu_t): Add atmega16hvb...
* config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
atmega32u6 devices.
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
From-SVN: r141799
Tobias Burnus [Wed, 12 Nov 2008 18:38:08 +0000 (19:38 +0100)]
re PR fortran/38065 (private/public confusion with a contained function)
2008-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/38065
PR fortran/38094
* gfortran.dg/private_type_4.f90: Add -std=f95 option.
From-SVN: r141798
Andreas Krebbel [Wed, 12 Nov 2008 18:04:39 +0000 (18:04 +0000)]
[multiple changes]
2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
packed-stack special handling.
(FRAME_ADDR_RTX): Add definition.
2008-11-12 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.target/s390/frame-addr1.c: New testcase.
* gcc.target/s390/frame-addr2.c: New testcase.
* gcc.target/s390/return-addr1.c: New testcase.
* gcc.target/s390/return-addr2.c: New testcase.
From-SVN: r141796
Jack Howarth [Wed, 12 Nov 2008 17:52:24 +0000 (17:52 +0000)]
re PR testsuite/38008 (gcc/testsuite/gcc.c-torture/execute/builtins/lib/sprintf.c unportable)
2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
PR testsuite/38008
* gcc.c-torture/execute/builtins/lib/sprintf.c: Make
sprintf call more portable for darwin10.
From-SVN: r141795
Jack Howarth [Wed, 12 Nov 2008 17:47:13 +0000 (17:47 +0000)]
re PR testsuite/37202 (FAIL: gcc.dg/visibility-1[4-9].c)
2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
PR testsuite/37202
* gcc.dg/visibility-14.c: Skip on *-*-darwin*.
* gcc.dg/visibility-15.c: Same.
* gcc.dg/visibility-16.c: Same.
* gcc.dg/visibility-17.c: Same.
* gcc.dg/visibility-18.c: Same.
* gcc.dg/visibility-19.c: Same.
From-SVN: r141794
Jakub Jelinek [Wed, 12 Nov 2008 17:33:48 +0000 (18:33 +0100)]
re PR c++/34269 (Incomplete __decltype/__typeof expressions accepted)
PR c++/34269
* parser.c (cp_parser_simple_declaration): Don't commit
to tentative parse if parse errors were seen.
* g++.dg/cpp0x/decltype13.C: New test.
* g++.dg/cpp0x/decltype-33837.C: Adjust dg-error pattern.
* g++.dg/cpp0x/pr33839.C: Likewise.
From-SVN: r141793
Jakub Jelinek [Wed, 12 Nov 2008 17:01:51 +0000 (18:01 +0100)]
re PR target/35366 (gfortran.dg/equiv_7.f90 fails with -m64 -Os on powerpc-apple-darwin9)
PR target/35366
PR fortran/33759
* fold-const.c (native_encode_string): New function.
(native_encode_expr): Use it for STRING_CST.
* trans-const.c (gfc_conv_constant_to_tree): Warn when
converting an integer outside of LOGICAL's range to
LOGICAL.
* trans-intrinsic.c (gfc_conv_intrinsic_function,
gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
argument of another TRANSFER.
* gfortran.dg/hollerith.f90: Don't assume a 32-bit value
stored into logical variable will be preserved.
* gfortran.dg/transfer_simplify_4.f90: Remove undefined
cases. Run at all optimization levels. Add a couple of
new tests.
* gfortran.dg/hollerith5.f90: New test.
* gfortran.dg/hollerith_legacy.f90: Add dg-warning.
From-SVN: r141790
DJ Delorie [Wed, 12 Nov 2008 16:35:03 +0000 (11:35 -0500)]
cond.md (cond_to_int peephole2): Don't eliminate the insns if the intermediate value will be used later.
* config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
insns if the intermediate value will be used later.
From-SVN: r141788
Andreas Schwab [Wed, 12 Nov 2008 16:34:14 +0000 (16:34 +0000)]
m68k.c (print_operand): Mask off extra extension bits when writing out the representation of real values.
* config/m68k/m68k.c (print_operand): Mask off extra extension
bits when writing out the representation of real values.
From-SVN: r141787
Ira Rosen [Wed, 12 Nov 2008 10:36:03 +0000 (10:36 +0000)]
re PR tree-optimization/38079 (gcc segfaults when using -ftree-vectorizer-verbose=9)
PR tree-optimization/38079
* tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
with vect_dump.
From-SVN: r141785
Paolo Carlini [Wed, 12 Nov 2008 09:59:27 +0000 (09:59 +0000)]
PR libstdc++/37986 (cont)
2008-11-12 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/37986 (cont)
* include/tr1_impl/random (struct _Adaptor): Use only remove_reference
on _Engine.
(struct _Adaptor<_Engine*, _Distribution>): Add.
* testsuite/tr1/5_numerical_facilities/random/variate_generator/
37986.cc: Extend.
From-SVN: r141784
Jakub Jelinek [Wed, 12 Nov 2008 08:18:45 +0000 (09:18 +0100)]
re PR c++/35334 (Broken diagnostic for complex cast)
PR c++/35334
* c-pretty-print.c (pp_c_complex_expr): New function.
(pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
* error.c (dump_expr): Handle COMPLEX_EXPR.
* gcc.dg/pr35334.c: New test.
* g++.dg/other/error29.C: New test.
From-SVN: r141783
Jakub Jelinek [Wed, 12 Nov 2008 08:16:12 +0000 (09:16 +0100)]
re PR target/35366 (gfortran.dg/equiv_7.f90 fails with -m64 -Os on powerpc-apple-darwin9)
PR target/35366
* expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
than INNER and INNER is a constant, forcibly align INNER as much
as needed.
From-SVN: r141782
Tobias Burnus [Wed, 12 Nov 2008 06:59:33 +0000 (07:59 +0100)]
re PR fortran/38065 (private/public confusion with a contained function)
2008-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/38065
* resolve.c (resolve_fntype): Fix private derived type checking.
2008-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/38065
* gfortran.dg/private_type_11.f90: New test.
* gfortran.dg/private_type_12.f90: New test.
From-SVN: r141780
GCC Administrator [Wed, 12 Nov 2008 00:17:48 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r141778
Richard Sandiford [Tue, 11 Nov 2008 23:24:05 +0000 (23:24 +0000)]
cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
gcc/
* cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
From-SVN: r141775
Richard Sandiford [Tue, 11 Nov 2008 23:23:23 +0000 (23:23 +0000)]
re PR rtl-optimization/37363 (Fix for PR 36090 causes libstdc++ regressions)
gcc/
PR rtl-optimization/37363
* simplify-rtx.c (simplify_plus_minus): Don't create (const (minus ...))
expresisons.
From-SVN: r141774
Eric Botcazou [Tue, 11 Nov 2008 18:07:39 +0000 (18:07 +0000)]
ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO handling.
* ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
handling.
From-SVN: r141772
Paolo Carlini [Tue, 11 Nov 2008 14:31:48 +0000 (14:31 +0000)]
re PR libstdc++/37986 (std::tr1::variate_generator does not conform to TR1.)
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/37986
* include/tr1_impl/random (struct _Adaptor): Use remove_pointer
and remove_reference on _Engine.
* testsuite/tr1/5_numerical_facilities/random/variate_generator/
37986.cc: New.
From-SVN: r141769
Paolo Carlini [Tue, 11 Nov 2008 13:49:53 +0000 (13:49 +0000)]
1_neg.cc: Adjust dg-error line numbers.
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/ext/ext_pointer/1_neg.cc: Adjust dg-error line numbers.
From-SVN: r141768
Paolo Carlini [Tue, 11 Nov 2008 13:49:46 +0000 (13:49 +0000)]
1_neg.cc: Adjust dg-error line numbers.
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/ext/ext_pointer/1_neg.cc: Adjust dg-error line numbers.
From-SVN: r141767
Paolo Carlini [Tue, 11 Nov 2008 13:18:39 +0000 (13:18 +0000)]
erase.cc: Fix.
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc: Fix.
* testsuite/23_containers/vector/ext_pointer/modifiers/element.cc:
Likewise.
From-SVN: r141766
Bob Walters [Tue, 11 Nov 2008 12:16:57 +0000 (12:16 +0000)]
forward_list.h: Support non-standard pointer types
2008-11-11 Bob Walters <bob.s.walters@gmail.com>
* include/bits/forward_list.h: Support non-standard pointer types
(_Fwd_list_node_base): Add _Alloc template parameter.
(_Fwd_list_node<>): Likewise.
(_Fwd_list_iterator<>): Likewise.
(_Fwd_list_const_iterator<>): Likewise.
(_Fwd_list_node_base::_M_next, _M_transfer_after, _M_reverse_after):
Use _Alloc<_Tp>::pointer.
(_Fwd_list_iterator<>::_M_node): Use _Node_base::_Pointer.
(_Fwd_list_base<>::_M_get_node, _M_create_node, _M_create_node,
_M_insert_after, _M_put_node, _M_erase_after): Likewise.
(_Fwd_list_const_iterator<>::_M_node): use _Node_base::_Const_pointer.
(forward_list<>): Use __static_pointer_cast in place of static_cast,
and __const_pointer_cast in place of const_cast.
* include/bits/forward_list.tcc
(_Fwd_list_node<>::_M_sort_after): Using _Pointer typedefs in place
of standard pointers, __static_pointer_cast in place of static_cast.
(_Fwd_list_base<>::_Fwd_list_base, _M_insert_after, _M_erase_after):
Likewise.
(forward_list<>::_M_initialize_dispatch, _M_fill_initialize,
splice_after, remove, remove_if, merge): Likewise.
* testsuite/23_containers/forward_list/ext_pointer/modifiers/1.cc: New.
* testsuite/23_containers/forward_list/ext_pointer/modifiers/2.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/modifiers/3.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/modifiers/4.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/modifiers/5.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/1.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/2.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/3.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/4.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/5.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/6.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/operations/7.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/requirements/1.cc:
Likewise.
* testsuite/23_containers/forward_list/ext_pointer/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/23_containers/forward_list/ext_pointer/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/forward_list/ext_pointer/1.cc: Likewise.
From-SVN: r141765
Paolo Carlini [Tue, 11 Nov 2008 12:15:59 +0000 (12:15 +0000)]
extptr_allocator.h: Minor tweaks.
2008-11-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/extptr_allocator.h: Minor tweaks.
* include/ext/pointer.h: Likewise.
* include/ext/cast.h: Likewise.
From-SVN: r141764
GCC Administrator [Tue, 11 Nov 2008 00:16:50 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r141762
Catherine Moore [Tue, 11 Nov 2008 00:06:10 +0000 (19:06 -0500)]
no-smartmips-lwxs.c: New test.
* gcc.target/mips/no-smartmips-lwxs.c: New test.
* gcc.target/mips/no-smartmips-ror-1.c: New test.
From-SVN: r141759
H.J. Lu [Mon, 10 Nov 2008 23:58:55 +0000 (15:58 -0800)]
Correct date.
From-SVN: r141755
Catherine Moore [Mon, 10 Nov 2008 23:56:24 +0000 (18:56 -0500)]
config.gcc (mips64vrel-*-elf*): Include the tm_file prior to vr.h.
* config.gcc (mips64vrel-*-elf*): Include the tm_file
prior to vr.h.
* config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
(BASE_DRIVER_SELF_SPECS): Remove.
(DRIVER_SELF_SPECS): New definition.
* config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
BASE_DRIVER_SELF_SPECS.
* config/mips/sde.h: Likewise.
* config/mips/iris6.h: Likewise.
* config/mips/vr.h: Likewise.
* config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
From-SVN: r141754
Vladimir Makarov [Mon, 10 Nov 2008 23:21:45 +0000 (23:21 +0000)]
re PR rtl-optimization/37948 (IRA generates slower code)
2008-11-07 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimizations/37948
* ira-int.h (struct ira_allocno_copy): New member constraint_p.
(ira_create_copy, ira_add_allocno_copy): New parameter.
* ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
to ira_add_allocno_copy.
(process_reg_shuffles, add_insn_allocno_copies): Pass a new
parameter to process_regs_for_copy.
(propagate_copies): Pass a new parameter to ira_add_allocno_copy.
Fix typo in passing second allocno to ira_add_allocno_copy.
* ira-color.c (update_conflict_hard_regno_costs): Use head of
coalesced allocnos list.
(assign_hard_reg): Ditto. Check that assigned allocnos are not in
the graph.
(add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
(add_ira_allocno_to_ordered_bucket): Rename to
add_allocno_to_ordered_bucket.
(push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
head of coalesced allocnos list.
(push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
Check that it is aready calculated.
(push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
(setup_allocno_left_conflicts_num): Use head of coalesced allocnos
list.
(coalesce_allocnos): Do extended coalescing too.
* ira-emit.c (add_range_and_copies_from_move_list): Pass a new
parameter to ira_add_allocno_copy.
* ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
parameter.
(print_copy): Print copy origination too.
* ira-costs.c (scan_one_insn): Use alloc_pref for load from
equivalent memory.
From-SVN: r141753
Kaz Kojima [Mon, 10 Nov 2008 23:10:10 +0000 (23:10 +0000)]
re PR rtl-optimization/37514 (Wrong code generated for
20021120-1.c with -O3 -fomit-frame-pointer on sh4)
PR rtl-optimization/37514
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
flag_ira_share_spill_slots to 2 if it's already non-zero.
(OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
flag_ira_share_spill_slots is 2.
* gcc.target/sh/pr37514.c: New test.
From-SVN: r141752
Eric Botcazou [Mon, 10 Nov 2008 21:06:55 +0000 (21:06 +0000)]
* g++.dg/other/anon5.C: Skip on Solaris.
From-SVN: r141749
Kevin Buettner [Mon, 10 Nov 2008 20:37:14 +0000 (20:37 +0000)]
prologue.md (prologue_enter_16): Set FB to SP - 2.
* config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
(prologue_enter_32): Set FB to SP - 4.
From-SVN: r141748
DJ Delorie [Mon, 10 Nov 2008 19:37:20 +0000 (14:37 -0500)]
m32c.c (m32c_const_ok_for_constraint_p): Add ImB constraint for single-bit-clear in lower byte of HI constant...
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
constraint for single-bit-clear in lower byte of HI constant, vs
Imb which just ignores the upper byte.
* config/m32c/predicates.md (m32c_1mask8_operand): Use it.
* config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
(iorhi3_16): Check for single bit set, not single bit clear.
From-SVN: r141747
Janis Johnson [Mon, 10 Nov 2008 19:18:10 +0000 (19:18 +0000)]
* doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
From-SVN: r141745
Janis Johnson [Mon, 10 Nov 2008 19:11:12 +0000 (19:11 +0000)]
* doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
From-SVN: r141744
Eric Botcazou [Mon, 10 Nov 2008 16:52:50 +0000 (16:52 +0000)]
calls.c (store_unaligned_arguments_into_pseudos): Deal only with values living in memory and use more precise alignment information.
* calls.c (store_unaligned_arguments_into_pseudos): Deal only with
values living in memory and use more precise alignment information.
From-SVN: r141742
Jakub Jelinek [Mon, 10 Nov 2008 13:48:06 +0000 (14:48 +0100)]
re PR middle-end/35314 (ICE with __builtin_setjmp and -fmudflap)
PR middle-end/35314
* tree-mudflap.c (mf_build_check_statement_for): Split then_block
after __mf_check call if the call must end a bb.
* testsuite/libmudflap.c/pass67-frag.c: New test.
From-SVN: r141741
Paolo Carlini [Mon, 10 Nov 2008 13:47:12 +0000 (13:47 +0000)]
re PR libstdc++/38067 (monetary_members.cc: 4 * call to wrong C++ delete)
2008-11-10 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/38067
* config/locale/gnu/monetary_members.cc (moneypunct<>::
_M_initialize_moneypunct(__c_locale, const char*)): Use correct vector
delete for __wcs_ps and __wcs_ns.
From-SVN: r141740
Jakub Jelinek [Mon, 10 Nov 2008 13:41:37 +0000 (14:41 +0100)]
re PR c++/38021 (C++ hang for new keywords)
PR c++/38021
* parser.c (cp_parser_enum_specifier): After parsing :,
parse definitely. Don't return early if type specifier
is erroneous.
* g++.dg/cpp0x/enum1.C: New test.
From-SVN: r141739
Andrew Haley [Mon, 10 Nov 2008 12:33:22 +0000 (12:33 +0000)]
2008-11-10 Andrew Haley <aph@redhat.com>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector):
Remove bogus gdk_threads_leave ();
From-SVN: r141738
Jakub Jelinek [Mon, 10 Nov 2008 09:19:05 +0000 (10:19 +0100)]
Formatting fixes.
From-SVN: r141733
Ralph Loader [Mon, 10 Nov 2008 09:08:15 +0000 (10:08 +0100)]
re PR middle-end/37807 (Exponential compile time with MMX builtins.)
PR middle-end/37807
PR middle-end/37809
* combine.c (force_to_mode): Do not process vector types.
* rtlanal.c (nonzero_bits1): Do not process vector types.
(num_sign_bit_copies1): Likewise.
testsuite/ChangeLog
PR middle-end/37807
PR middle-end/37809
* gcc/testsuite/gcc.target/i386/mmx-8.c: New test.
From-SVN: r141732
GCC Administrator [Mon, 10 Nov 2008 00:16:49 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r141727
Thomas Schwinge [Sun, 9 Nov 2008 22:57:46 +0000 (23:57 +0100)]
config.host: Also enable for GNU/kFreeBSD and GNU/kNetBSD.
2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
* config.host <t-tls>: Also enable for GNU/kFreeBSD and GNU/kNetBSD.
From-SVN: r141722
Thomas Schwinge [Sun, 9 Nov 2008 22:09:02 +0000 (23:09 +0100)]
gnu.h: Add copyright and licensing header.
2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
* config/i386/gnu.h: Add copyright and licensing header.
* config/gnu.h: Likewise.
From-SVN: r141721
Paul Thomas [Sun, 9 Nov 2008 17:40:30 +0000 (17:40 +0000)]
re PR fortran/37836 (ICE in gfc_trans_auto_array_allocation)
2008-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37836
* intrinsic.c (add_functions): Reference gfc_simplify._minval
and gfc_simplify_maxval.
* intrinsic.h : Add prototypes for gfc_simplify._minval and
gfc_simplify_maxval.
* simplify.c (min_max_choose): New function extracted from
simplify_min_max.
(simplify_min_max): Call it.
(simplify_minval_maxval, gfc_simplify_minval,
gfc_simplify_maxval): New functions.
2008-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37836
* gfortran.dg/minmaxval_1.f90: New test.
From-SVN: r141717
Eric Botcazou [Sun, 9 Nov 2008 09:50:02 +0000 (09:50 +0000)]
ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
* gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
(MINUS_NOMOD_EXPR): Likewise.
* gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
unreachable.
<PLUS_NOMOD_EXPR>: New case.
<MINUS_NOMOD_EXPR>: Likewise.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
assignment statement instead of using an increment operator.
From-SVN: r141714
GCC Administrator [Sun, 9 Nov 2008 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r141711
GCC Administrator [Sat, 8 Nov 2008 00:16:48 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r141700
Andrew Pinski [Fri, 7 Nov 2008 21:16:54 +0000 (21:16 +0000)]
fwprop.c (fwprop_done): Call df_remove_problem.
2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
* fwprop.c (fwprop_done): Call df_remove_problem.
From-SVN: r141686
Joseph Myers [Fri, 7 Nov 2008 20:28:57 +0000 (20:28 +0000)]
* id.po: Update.
From-SVN: r141684
Sebastian Pop [Fri, 7 Nov 2008 18:03:04 +0000 (18:03 +0000)]
re PR middle-end/37379 ([graphite] ICE compiling aermod.f90 with -ffast-math -floop-block -O2 -fgraphite)
2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/37379
* tree-scalar-evolution.c (instantiate_scev_1): Return
chrec_dont_know for VL_EXP_CLASS_P.
From-SVN: r141682
Rainer Orth [Fri, 7 Nov 2008 16:25:03 +0000 (16:25 +0000)]
re PR ada/37681 (Building 64-bit libada fails on Solaris/x86: alignment error)
* system-irix-n64.ads: New file.
* gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
multilibs.
PR ada/37681
* system-solaris-x86_64.ads: New file.
* gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
From-SVN: r141681
Paolo Carlini [Fri, 7 Nov 2008 15:47:11 +0000 (15:47 +0000)]
2008-11-07 Paolo Carlini <paolo.carlini@oracle.com>
* Tweak ChangeLog.
From-SVN: r141678
Paolo Carlini [Fri, 7 Nov 2008 15:44:35 +0000 (15:44 +0000)]
2008-11-07 Paolo Carlini <paolo.carlini@oracle.com>
* Complete last commit.
From-SVN: r141677
Paolo Carlini [Fri, 7 Nov 2008 15:44:20 +0000 (15:44 +0000)]
2008-11-07 Paolo Carlini <paolo.carlini@oracle.com>
* Complete last commit.
From-SVN: r141676
Paolo Carlini [Fri, 7 Nov 2008 15:43:57 +0000 (15:43 +0000)]
2008-11-07 Paolo Carlini <paolo.carlini@oracle.com>
* Complete last commit.
From-SVN: r141675
Bob Walters [Fri, 7 Nov 2008 15:26:25 +0000 (15:26 +0000)]
pointer.h: Add experimental support for non-standard pointer types in containers via the...
2008-11-07 Bob Walters <bob.s.walters@gmail.com>
* include/ext/pointer.h: Add experimental support for non-standard
pointer types in containers via the allocator::pointer typedef.
(Currently only supported/working with std::vector)
* include/ext/cast.h: Add overload-able pointer casting functions
for use in containers supporting non-standard pointer types.
* include/ext/extptr_allocator.h: Add _ExtPtr_allocator.
* include/Makefile.am: Update.
* include/precompiled/extc++.h: Likewise.
* include/Makefile.in: Regenerate.
* testsuite/ext/ext_pointer/1.cc: New.
* testsuite/ext/ext_pointer/1_neg.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/citerators.cc: New.
* testsuite/23_containers/vector/ext_pointer/data_access.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/resize.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/types/1.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/modifiers/element.cc:
Likewise.
* testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc:
Likewise.
* testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc:
Likewise.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
1.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
3.cc: Likewise.
From-SVN: r141674
Bechir Zalila [Fri, 7 Nov 2008 10:46:18 +0000 (10:46 +0000)]
re PR ada/34289 (gnatmake -s doesn't work)
PR ada/34289
* lib.ads: (Enable_Switch_Storing): Declare.
* lib.adb: (Enable_Switch_Storing): New procedure.
* switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
* make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
(Display): Never display -gnatea
* gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r141673
Eric Botcazou [Fri, 7 Nov 2008 10:21:38 +0000 (10:21 +0000)]
Fix typo.
From-SVN: r141671
Thomas Quinot [Fri, 7 Nov 2008 10:17:40 +0000 (10:17 +0000)]
trans.c (Attribute_to_gnu, [...]): Check for empty range in original base type, not converted result type.
* gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
for empty range in original base type, not converted result type.
From-SVN: r141670
Eric Botcazou [Fri, 7 Nov 2008 10:03:21 +0000 (10:03 +0000)]
Update comment.
From-SVN: r141669
Geert Bosch [Fri, 7 Nov 2008 09:56:33 +0000 (09:56 +0000)]
trans.c (build_binary_op_trapv): Convert arguments and result for call to __gnat_mulv64.
* gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
and result for call to __gnat_mulv64.
From-SVN: r141668
Eric Botcazou [Fri, 7 Nov 2008 09:44:12 +0000 (09:44 +0000)]
* gcc-interface/trans.c: Fix formatting nits.
From-SVN: r141667
Geert Bosch [Fri, 7 Nov 2008 09:39:38 +0000 (09:39 +0000)]
trans.c (build_binary_op_trapv): Avoid emitting overflow check for constant result.
* gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
overflow check for constant result.
From-SVN: r141666