1. 26 May, 2002 7 commits
  2. 25 May, 2002 13 commits
    • Makefile.in (C_COMMON_H): Fix. · 81a75f0f
      	* Makefile.in (C_COMMON_H): Fix.
      	Update other targets.
      	* c-common.c: Don't include c-lex.h.
      	(builtin_define_with_value): Make static and prototype.
      	(builtin_define_std): Move from c-lex.h.
      	* c-common.h (init_c_lex): Move from c-lex.h.
      	* c-decl.c: Don't include c-lex.h.
      	(make_pointer_declarator): Move from c-parse.in.
      	* c-lex.c: Don't include c-lex.h.
      	* c-lex.h: Remove.
      	* c-parse.in: Don't include c-lex.h; include c-pragma.h.
      	(make_pointer_declarator): Move to c-decl.c.
      	* c-pragma.c: Don't include c-lex.h.
      	* c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
      	* c-tree.h (make_pointer_declarator): New.
      cp:
      	* lex.c: Don't include c-lex.h.
      	* parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
      doc:
      	* passes.texi, tm.texi: Update.
      objc:
      	* Make-lang.in: Update and correct.
      	* objc-act.c: Don't include c-lex.h or cpplib.h.
      treelang:
      	* treetree.c: Don't include c-lex.h.
      config:
      	* darwin-c.c: Don't include c-lex.h.
      	* c4x/c4x-c.c: Don't include c-lex.h.
      	* c4x/t-c4x: Update.
      	* i370/i370-c.c: Don't include c-lex.h.
      	* i370/t-i370: Update.
      	* i960/i960-c.c: Don't include c-lex.h.
      	* i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
      	* i960/t-960bare: Update.
      	* i960/t-vxworks: Update.
      	* rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
      	* rs6000/t-darwin: Update.
      	* rs6000/t-rs6000-c-rule: Update.
      	* v850/v850-c.c: Don't include c-lex.h.
      	* v850/v850.c: Don't include c-lex.h or cpplib.h.
      
      From-SVN: r53876
      Neil Booth committed
    • tree.def: Fix typos. · 04d2be8e
      	* tree.def: Fix typos.
      	* doc/install.texi: Likewise.
      
      From-SVN: r53875
      Kazu Hirata committed
    • configure.in (HAVE_AS_TLS): Add ia64 test. · 7b6e506e
      	* configure.in (HAVE_AS_TLS): Add ia64 test.
      	* configure: Rebuild.
      	* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
      	(override_options): Set it.
      	(TARGET_HAVE_TLS): New.
      	(sdata_symbolic_operand): Look for 's'.
      	(tls_symbolic_operand): New.
      	(ia64_expand_load_address): Abort for tls symbols.
      	(gen_tls_get_addr): New.
      	(gen_thread_pointer): New.
      	(ia64_expand_move): Split out from movdi.  Handle tls symbols.
      	(rtx_needs_barrier): Add new unspecs.
      	(ia64_encode_section_info): Handle tls symbols.
      	(ia64_strip_name_encoding): Strip two encoding chars.
      	* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
      	(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
      	(TARGET_OPTIONS): Add tls-size.
      	(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
      	* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
      	UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
      	(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
      	(movsf, movdf): Likewise.
      	(movdi_symbolic): Use match_scratch.  Don't split if we won't
      	have a scratch availiable.
      	(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
      	add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
      	load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
      	* config/ia64/ia64-protos.h: Update.
      	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
      	sdata_symbolic_operand.
      	(ASM_OUTPUT_LABELREF): Strip two characters.
      
      From-SVN: r53874
      Richard Henderson committed
    • * combine.c (simplify_set): Remove an unnecessary subreg. · 8c1d52a3
      From-SVN: r53873
      Kazu Hirata committed
    • avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL. · b47cae3d
      
      	* config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
      
      	* config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
      
      From-SVN: r53872
      Marek Michalkiewicz committed
    • simplify-rtx.c (simplify_gen_relational): Simplify the RTX (cond (compare x y)… · fb2c6841
      simplify-rtx.c (simplify_gen_relational): Simplify the RTX (cond (compare x y) 0) into the equivalent (cond x y).
      
      
      	* simplify-rtx.c (simplify_gen_relational): Simplify the RTX
      	(cond (compare x y) 0) into the equivalent (cond x y).
      
      From-SVN: r53870
      Roger Sayle committed
    • Daily bump. · 5e56e70a
      From-SVN: r53868
      GCC Administrator committed
    • c-torture.exp (c-torture-execute): Handle multiple sources. · 9e253215
      2002-05-24  Ben Elliston  <bje@redhat.com>
      
      	* lib/c-torture.exp (c-torture-execute): Handle multiple sources.
      
      From-SVN: r53863
      Ben Elliston committed
    • config.gcc: Remove all stanzas for previously obsoleted systems. · c7bdf0a6
      	* config.gcc: Remove all stanzas for previously obsoleted
      	systems.  Where necessary, add explicit error stanzas to
      	prevent removed systems from being misidentified as something
      	else.  Begin a fresh obsoletions list, with the systems that
      	were reprieved last round.
      	* doc/install.texi: Remove all mention of dead targets.
      	* fixinc/mkfixinc.sh: Likewise.
      
      	* config/arm/arm.h: Bit 31 of target_flags is no longer
      	reserved.
      
      	* config/1750a/1750a-protos.h, config/1750a/1750a.c,
      	config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
      	config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
      	config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
      	config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
      	config/alpha/osf12.h, config/alpha/osf2or3.h,
      	config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
      	config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
      	config/clipper/clipper-protos.h, config/clipper/clipper.c,
      	config/clipper/clipper.h, config/clipper/clipper.md,
      	config/clipper/clix.h, config/convex/convex-protos.h,
      	config/convex/convex.c, config/convex/convex.h,
      	config/convex/convex.md, config/convex/fixinc.convex,
      	config/convex/proto.h, config/elxsi/elxsi-protos.h,
      	config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
      	config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
      	config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
      	config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
      	config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
      	config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
      	config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
      	config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
      	config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
      	config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
      	config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
      	config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
      	config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
      	config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
      	config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
      	config/m68k/altos3068.h, config/m68k/apollo68.h,
      	config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
      	config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
      	config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
      	config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
      	config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
      	config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
      	config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
      	config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
      	config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
      	config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
      	config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
      	config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
      	config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
      	config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
      	config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
      	config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
      	config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
      	config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
      	config/mips/dec-osf1.h, config/mips/elflorion.h,
      	config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
      	config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
      	config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
      	config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
      	config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
      	config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
      	config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
      	config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
      	config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
      	config/ns32k/pc532-min.h, config/ns32k/pc532.h,
      	config/ns32k/sequent.h, config/ns32k/tek6000.h,
      	config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
      	config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
      	config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
      	config/sparc/rtems.h, config/we32k/we32k-protos.h,
      	config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
      	Delete file.
      
      From-SVN: r53862
      Zack Weinberg committed
    • flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1. · 755ac5d4
              * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
              * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
              * config/i386/i386.c (tls_model_chars): Add leading space.
              (tls_symbolic_operand): Don't bias by 1.
              (legitimize_address): Don't unbias by 1.
      
      From-SVN: r53861
      Richard Henderson committed
    • lcm.c (optimize_mode_switching): Change bb used as indices to bb->index. · c429f12e
              * lcm.c (optimize_mode_switching): Change bb used as indices
              to bb->index.
      
      From-SVN: r53860
      Toshiyasu Morita committed
  3. 24 May, 2002 17 commits
    • ia64.c (ia64_reorg): Use update_life_info instead of update_life_info_in_dirty_blocks. · 8beda321
              * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
              of update_life_info_in_dirty_blocks.
      
      From-SVN: r53858
      Richard Henderson committed
    • natThrowable.cc (fillInStackTrace): Use "stackTraceBytes", not "stackTrace". · f5fa9bc1
              * java/lang/natThrowable.cc (fillInStackTrace): Use "stackTraceBytes",
              not "stackTrace".
      
      From-SVN: r53857
      Bryce McKinlay committed
    • re PR other/6782 (Specifing "-fverbose-asm" option throws ICE.) · 90442291
      	PR other/6782
      	* final.c (get_mem_expr_from_op): Return 0 if op is NULL.
      
      	* gcc.dg/verbose-asm.c: New test.
      
      From-SVN: r53856
      Jakub Jelinek committed
    • re PR preprocessor/6780 (Incorrect diagnosis of token pasting) · 3620711b
      	PR preprocessor/6780
      	* cppmacro.c (enter_macro_context): Clear state.angled_headers.
      testsuite:
      	* gcc.dg/cpp/paste12.c: New test.
      
      From-SVN: r53851
      Neil Booth committed
    • dwarf2out.c (dwarf2out_finish): Don't forget to emit a final entry with a type code of zero... · 2f8d482e
      * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
      entry with a type code of zero, marking the end of the compilation
      unit's macro info.
      
      From-SVN: r53849
      Jim Blandy committed
    • varasm.c (asm_output_bss): Always output one byte. · 95bfe95f
              * varasm.c (asm_output_bss): Always output one byte.
              * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
      
      From-SVN: r53847
      Richard Henderson committed
    • Typo in previous changelog commit. · 2677e7ac
      From-SVN: r53846
      Phil Edwards committed
    • std_bitset.h (_Base_biteset<0>): New specialization. · bb12c809
      2002-05-24  Phil Edwards  <pme@gcc.gnu.org>
      
      	libstdc++/6282
      	* include/std/std_bitset.h (_Base_biteset<0>):  New specialization.
      	(operator>>):  If nothing was extracted, don't fail in the
      	zero-length case.
      	* testsuite/23_containers/bitset_ctor.cc (test02):  New test.
      
      From-SVN: r53844
      Phil Edwards committed
    • [multiple changes] · f64ce6c6
      
      2002-05-24  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/6701
      	* testsuite/22_locale/ctype_narrow_char.cc: New.
      	* testsuite/22_locale/ctype_narrow_wchar_t.cc: New.
      	* testsuite/22_locale/ctype_widen_char.cc: New.
      	* testsuite/22_locale/ctype_widen_wchar_t.cc: New.
      	* testsuite/22_locale/ctype_members_char.cc: Move some bits into...
      	* testsuite/22_locale/ctype_is_char.cc: ...this.
      	* testsuite/22_locale/ctype_to_char.cc: ...and this.
      	* testsuite/22_locale/ctype_members_wchar_t.cc: Move some bits into...
      	* testsuite/22_locale/ctype_is_wchar_t.cc: ...this.
      	* testsuite/22_locale/ctype_to_wchar_t.cc: ...and this.
      
      	* testsuite/22_locale/ctype_scan_wchar_t.cc: Should pass.
      
      2002-05-24  Dale Peakall <dale@peakall.net>
      
      	PR libstdc++/6701
      	* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_narrow): Fix.
      	* config/locale/generic/ctype_members.cc: Same.
      
      From-SVN: r53841
      Benjamin Kosnik committed
    • re PR libstdc++/6750 (ofstream incorrectly sets failbit (severe regression)) · 52f02d94
      
      2002-05-24  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/6750
      	* include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix
      	for empty string literal.
      	(ostream::operator<<(const _CharT*)): Same.
      	(ostream<char>::operator<<(const char*)): Same.
      	(ostream<char>::operator<<(streambuf*)): Same.
      	* testsuite/27_io/ostream_inserter_char.cc (test08): Add tests.
      	* testsuite/27_io/ostream_inserter_other.cc (test02): Modify.
      
      From-SVN: r53839
      Benjamin Kosnik committed
    • Merge JDK 1.4 java.security changes from classpath. · d2f108e2
             * java/security/AccessControlException.java: Merge from Classpath.
             * java/security/AccessController.java: Likewise.
             * java/security/AllPermission.java: Likewise.
             * java/security/BasicPermission.java: Likewise.
             * java/security/Certificate.java: Likewise.
             * java/security/CodeSource.java: Likewise.
             * java/security/DigestException.java: Likewise.
             * java/security/DigestOutputStream.java: Likewise.
             * java/security/DomainCombiner.java: Likewise.
             * java/security/GeneralSecurityException.java: Likewise.
             * java/security/Guard.java: Likewise.
             * java/security/GuardedObject.java: Likewise.
             * java/security/InvalidAlgorithmParameterException.java: Likewise.
             * java/security/InvalidKeyException.java: Likewise.
             * java/security/InvalidParameterException.java: Likewise.
             * java/security/Key.java: Likewise.
             * java/security/KeyException.java: Likewise.
             * java/security/KeyManagementException.java: Likewise.
             * java/security/KeyStoreException.java: Likewise.
             * java/security/MessageDigest.java: Likewise.
             * java/security/NoSuchAlgorithmException.java: Likewise.
             * java/security/NoSuchProviderException.java: Likewise.
             * java/security/Permission.java: Likewise.
             * java/security/PermissionCollection.java: Likewise.
             * java/security/Permissions.java: Likewise.
             * java/security/Policy.java: Likewise.
             * java/security/Principal.java: Likewise.
             * java/security/PrivateKey.java: Likewise.
             * java/security/PrivilegedAction.java: Likewise.
             * java/security/PrivilegedActionException.java: Likewise.
             * java/security/PrivilegedExceptionAction.java: Likewise.
             * java/security/ProtectionDomain.java: Likewise.
             * java/security/ProviderException.java: Likewise.
             * java/security/PublicKey.java: Likewise.
             * java/security/SecureClassLoader.java: Likewise.
             * java/security/SecurityPermission.java: Likewise.
             * java/security/SignatureException.java: Likewise.
             * java/security/UnrecoverableKeyException.java: Likewise.
             * java/security/UnresolvedPermission.java: Likewise.
             * java/security/acl/AclNotFoundException.java: Likewise.
             * java/security/acl/LastOwnerException.java: Likewise.
             * java/security/acl/NotOwnerException.java: Likewise.
             * java/security/cert/CRLException.java: Likewise.
             * java/security/cert/CertificateEncodingException.java: Likewise.
             * java/security/cert/CertificateException.java: Likewise.
             * java/security/cert/CertificateExpiredException.java: Likewise.
             * java/security/cert/CertificateFactory.java: Likewise.
             * java/security/cert/CertificateNotYetValidException.java: Likewise.
             * java/security/cert/CertificateParsingException.java: Likewise.
             * java/security/spec/InvalidKeySpecException.java: Likewise.
             * java/security/spec/InvalidParameterSpecException.java: Likewise.
      
             * java/security/cert/CertPath.java: New file.
             * java/security/cert/CertPathBuilderException.java: New file.
             * java/security/cert/CertPathValidatorException.java: New file.
             * java/security/cert/CertStoreException.java: New file.
      
             * Makefile.am: Add new CertPath classes.
             * Makefile.in: Rebuilt.
      
             * gnu/java/util/EmptyEnumeration: New file from classpath.
      
      From-SVN: r53837
      Bryce McKinlay committed
    • Merge JDK 1.4 exception chaining support from classpath. · 4fbecd29
      	* java/lang/Throwable.java: Merge 1.4 support from classpath.
      	(stackTraceBytes): Rename from stackTrace.
      	* java/lang/Exception.java: Merge from classpath.
      	* java/lang/StackTraceElement: New file from classpath.
      	* gcj/javaprims.h: Rebuild CNI namespace declarations.
      	* Makefile.am: Add StackTraceElement.
      	* Makefile.in: Rebuilt.
      
      From-SVN: r53836
      Bryce McKinlay committed
    • tree.c (decl_type_context): Return NULL_TREE if decl's context is a namespace. · 7efda054
          * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
           namespace.
      
      From-SVN: r53828
      Bryce McKinlay committed
    • * MAINTAINERS (Write After Approval): Add myself. · 397de1ff
      From-SVN: r53827
      Kaz Kojima committed
    • Daily bump. · 09cc7e1f
      From-SVN: r53826
      GCC Administrator committed
    • ggc-page.c (alloc_page): Cast variables of type size_t to unsigned long, adjust… · 8a951190
      ggc-page.c (alloc_page): Cast variables of type size_t to unsigned long, adjust printf format string.
      
      	* ggc-page.c (alloc_page): Cast variables of type size_t to
      	unsigned long, adjust printf format string.
      	(ggc_alloc): Likewise.
      	(ggc_print_statistics): Likewise.
      	(ggc_print_statistics): Correct printf format string for SCALE to
      	use unsigned long.
      
      From-SVN: r53820
      Andreas Jaeger committed
    • * config/i386/mingw32.h (CPP_SPEC): Remove -remap. · f29e2ec0
      From-SVN: r53819
      Danny Smith committed
  4. 23 May, 2002 3 commits
    • mingw32.h (OUTPUT_QUOTED_STRING): Properly output quoted strings. · 211a0cbe
      	* config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
      	quoted strings.
      	* dwarf2out.c (lookup_filename): Properly quote filename in .file
      	directive in assembly file.
      	* config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
      	* config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
      	* config/pj/pj.h (ASM_FILE_START): Likewise.
      	* config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
      	* config/avr/avr.c (asm_file_end): Likewise.
      	* toplev.c (output_quoted_string): Handle possibly signed plain
      	char.
      	* toplev.h (output_clean_symbol_name): Declare
      	* toplev.c (output_clean_symbol_name): Define.
      	* config/alpha/alpha.c (unicosmk_output_module_name): Use it.
      	* config/1750a/1750a.h (ASM_FILE_START): Likewise.
      
      Co-Authored-By: Zack Weinberg <zack@codesourcery.com>
      
      From-SVN: r53817
      Gabriel Dos Reis committed
    • * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits. · 2f0552b6
      From-SVN: r53815
      Alan Modra committed
    • named_ops.c: Remove. · 13fa982e
      testsuite:
      	* gcc.dg/cpp/testsuite/named_ops.c: Remove.
      	* g++.dg/parse/named_ops.C: New test.
      
      From-SVN: r53814
      Neil Booth committed