Age | Commit message (Collapse) | Author | Files | Lines |
|
* cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types.
(struct cpp_options): Add narrow_charset, wide_charset,
bytes_big_endian fields. Remove EBCDIC field.
(cpp_init_iconv, cpp_interpret_string): New external interfaces.
* cpphash.h: Include <iconv.h> if we have it, otherwise
provide a dummy definition of iconv_t.
(struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields.
(_cpp_valid_ucn): Update prototype.
(_cpp_destroy_iconv): New prototype.
* doc/cpp.texi: Document character set handling.
* doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=.
* doc/extend.texi: Delete entire section on multiline strings.
Rewrite section on __FUNCTION__ etc now that these are
variables in C.
* cppucnid.tab, cppucnid.pl: New files.
* cppucnid.h: New generated file.
* cppcharset.c: Include cppucnid.h. Lots of commentary added.
(iconv_open, iconv, iconv_close): Provide dummy definitions
if !HAVE_ICONV.
(SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv,
_cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn,
emit_numeric_escape, convert_hex, convert_oct, convert_escape,
cpp_interpret_string, narrow_str_to_charconst,
wide_str_to_charconst): New.
(ucn_valid_in_identifier): Use a binary search through the
ucnranges table defined in cppucnid.h, not a long chain of if
statements.
(_cpp_valid_ucn): Add a limit pointer. Downgrade "universal
character names are only valid in C++ and C99" to a warning.
Issue the "meaning of \[uU] is different in traditional C"
warning here. Take care not to let iconv see an invalid UCS
value if we get a malformed UCN. Issue an error if we don't
have iconv.
(cpp_interpret_charconst): Moved here from cpplex.c. Use
cpp_interpret_string to do the heavy lifting.
* cppinit.c (cpp_create_reader): Initialize bytes_big_endian,
narrow_charset, wide_charset fields of options structure.
(cpp_destroy): Call _cpp_destroy_iconv.
* cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn.
(maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete.
(cpp_interpret_charconst): Moved to cppcharset.c.
* cpplib.c (dequote_string): Delete.
(interpret_string_notranslate): New.
(do_line, do_linemarker): Use interpret_string_notranslate.
* Makefile.in (cppcharset.o): Depend on cppucnid.h.
* c-common.c (fname_string, combine_strings): Delete.
* c-common.h (fname_string, combine_strings): Delete prototypes.
* c-lex.c (ignore_escape_flag): Delete.
(cb_ident): Use cpp_interpret_string, not lex_string.
(get_nonpadding_token): New function.
(c_lex): Handle Objective-C @-prefixed identifiers and strings here.
Adjust calls to lex_string. Don't write *value twice.
(lex_string): Now handles string constant concatenation.
Most of the work handed off to cpp_interpret_string.
Call fix_string_type here.
* c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with
FUNC_NAME, throughout.
(OBJC_STRING): New token type.
(primary:STRING): No need to call fix_string_type here.
(primary:objc_string): Make that OBJC_STRING.
(objc_string nonterminal): Delete.
(yylexname): Delete code to handle fake string constants.
(yylexstring): Delete entirely.
(_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need
to handle CPP_ATSIGN.
* c.opt (-fexec-charset=, -fwide-exec-charset=): New options.
* c-opts.c (missing_arg, c_common_handle_option): Handle
OPT_fexec_charset_ and OPT_fwide_exec_charset_.
(c_common_init): Set cpp_opts->bytes_big_endian, not
cpp_opts->EBCDIC. Call cpp_init_iconv.
(print_help): Document -fexec-charset= and -fexec-wide-charset=.
(TARGET_EBCDIC): Delete default definition.
* objc/objc-act.c (build_objc_string_object): No need to
handle string constant concatenation.
cp:
* parser.c (cp_lexer_read_token): No need to handle string
constant concatenation.
testsuite:
* gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c
everywhere.
* gcc.dg/concat.c: Concatenation of string constants with
__FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error.
* gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp.
* gcc.dg/cpp/escape-2.c: Use wide character constants where
necessary to avoid multi-character character constant warning.
* gcc.dg/cpp/escape.c: Likewise.
* gcc.dg/cpp/ucs.c: Likewise.
Remove backslashes from dg-bogus comments, as they confuse Tcl.
Fix a typo.
libstdc++-v3:
* testsuite/22_locale/collate/compare/wchar_t/2.cc
* testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
* testsuite/22_locale/collate/hash/wchar_t/2.cc
* testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
* testsuite/22_locale/collate/transform/wchar_t/2.cc
* testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
XFAIL on all targets.
From-SVN: r68952
|
|
* doc/install.texi: Fix typos.
* doc/invoke.texi: Likewise.
* doc/tm.texi: Likewise.
From-SVN: r68951
|
|
From-SVN: r68949
|
|
* config/pa/fptr.c: Fix comment typos.
* config/pa/pa-64.h: Likewise.
* config/pa/pa.c: Likewise.
* config/pa/pa.h: Likewise.
* config/rs6000/603.md: Likewise.
* config/rs6000/7xx.md: Likewise.
* config/rs6000/darwin.h: Likewise.
* config/rs6000/freebsd.h: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rs6000/rs6000.md: Likewise.
* config/rs6000/spe.h: Likewise.
From-SVN: r68947
|
|
* Makefile.tpl (all-bootstrap): Depend on maybe-all-intl.
* Makefile.in: Regenerate.
From-SVN: r68945
|
|
PR c/11428
* gcc.c-torture/compile/20030704-1.c: New.
From-SVN: r68944
|
|
From-SVN: r68943
|
|
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_ENABLE_PCH): Fix missed variable.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2003-07-04 Jerry Quinn <jlquinn@optonline.net>
* include/bits/locale_facets.tcc (__int_to_char): Move common case
to the top.
From-SVN: r68942
|
|
* config/s390/2064.md: Change GNU CC to GCC.
* config/s390/2084.md: Likewise.
* config/s390/fixdfdi.h: Likewise.
* config/s390/linux.h: Likewise.
* config/s390/s390-modes.def: Likewise.
* config/s390/s390-protos.h: Likewise.
* config/s390/s390.c: Likewise.
* config/s390/s390.h: Likewise.
* config/s390/s390.md: Likewise.
* config/s390/s390x.h: Likewise.
From-SVN: r68941
|
|
fold_single_bit_test.
* expr.c (do_store_flag): Pass in the correct result type
when calling fold_single_bit_test.
* fold-const.c (fold_single_bit_test): Use result_type for the
result when folding a sign bit test.
From-SVN: r68940
|
|
From-SVN: r68939
|
|
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
Petur Runolfsson <peturr02@ru.is>
* config/io/basic_file_stdio.cc: Revert.
Co-Authored-By: Petur Runolfsson <peturr02@ru.is>
From-SVN: r68938
|
|
lookup.
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
* include/bits/deque.tcc: Fully qualify standard
functions with std::, thus avoiding Koenig lookup.
* include/bits/gslice_array.h: Likewise.
* include/bits/indirect_array.h: Likewise.
* include/bits/list.tcc: Likewise.
* include/bits/mask_array.h: Likewise.
* include/bits/slice_array.h: Likewise.
From-SVN: r68937
|
|
2003-07-04 Gawain Bolton <gbolton@free.fr>
* include/bits/stl_tree.h: Performance and memory usage
improvements.
From-SVN: r68936
|
|
From-SVN: r68934
|
|
From-SVN: r68932
|
|
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.tpl: Replace PWD with PWD_COMMAND.
* Makefile.in: Regenerated.
gcc/
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* config-ml.in: Replace PWD with PWD_COMMAND.
* Makefile.in: Likewise.
gcc/ada/
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* Make-lang.in: Replace PWD with PWD_COMMAND.
* Makefile.adalib: Likewise.
* Makefile.in: Likewise.
gcc/treelang/
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* Make-lang.in: Replace PWD with PWD_COMMAND.
libf2c/
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in: Replace PWD with PWD_COMMAND.
libstdc++-v3/
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am: Replace PWD with PWD_COMMAND.
* Makefile.in: Regenerated.
* docs/html/Makefile: Likewise.
From-SVN: r68931
|
|
* cfgloopanal.c (count_strange_loop_iterations): New static function.
(constant_iterations, count_loop_iterations, simple_loop_exit_p):
Handle strange loops.
From-SVN: r68930
|
|
2003-07-04 Toon Moene <toon@moene.indiv.nluug.nl>
* install.texi: Even the g77 manpage is derived from
the full g77 manual.
From-SVN: r68929
|
|
top:
* intl: New directory; see intl/ChangeLog for details.
* ABOUT-NLS, config.rpath: Import from gettext 0.12.1.
* Makefile.tpl: all-gcc depends on maybe-all-intl.
* Makefile.in: Regenerate.
config:
* gettext.m4: New file - copy of gettext.m4 from binutils
CVS, with added AC_ISC_POSIX macro from gcc/aclocal.m4.
gcc:
* ABOUT-NLS: Delete.
* intl: Delete entire directory.
* aclocal.m4: Include ../config/gettext.m4. Delete
AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES,
AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT.
* configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT.
Remove intl/Makefile from all_outputs.
* configure, config.in: Regenerate.
* Makefile.in: Expunge all references to intl subdirectory.
Add -I../intl to INCLUDES.
* intl.h: Include libintl.h if and only if ENABLE_NLS is defined.
intl:
* Makefile.in: Remove unnecessary capabilities for
installation, build of shared libraries, generation of
distribution tarballs, etc. Fix all the places that rely on
the parent directory. Don't generate libgnuintl.h from
anything; do generate $(objdir)/libintl.h from libgnuintl.h if
necessary. Adjust DEFS for use of config.h.
* libgnuintl.h.in: Rename libgnuintl.h.
* README: New file.
* config.charset, ref-add.sin, ref-del.sin: Delete (unused).
* COPYING.LIB-2.0, COPYING.LIB-2.1: Delete (redundant).
* aclocal.m4: New; generated per instructions in gettext manual.
* configure.in: New; written from scratch for this configuration.
* configure, config.h.in: Generated.
contrib:
* gcc_update: Remove gcc/intl/plural.c from list.
Add new generated files intl/plural.c, intl/configure,
intl/config.h.in.
From-SVN: r68928
|
|
Koenig lookup.
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
* include/bits/valarray_array.h: Fully qualify standard
functions with std::, thus avoiding Koenig lookup.
* include/bits/vector.tcc: Likewise.
From-SVN: r68927
|
|
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am: Update target_ to host_.
* include/Makefile.in: Regenerate.
* src/Makefile.am: Same.
* src/Makefile.in: Regenerate.
* config/os/gnu-linux/os_defines.h: Remove glibc-2.0 support.
From-SVN: r68926
|
|
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_ENABLE_DEBUG_FLAGS): To
--enable-libstdcxx-debug-flags.
(GLIBCPP_ENABLE_DEBUG_FLAGS): To --enable-libstdcxx-debug.
(GLIBCPP_ENABLE_PCH): To --enable-libstdcxx-pch.
* aclocal.m4: Regenerate.
* configure: Same.
* docs/html/configopts.html: Update.
From-SVN: r68925
|
|
generation only if...
* gcc_release: Execute gcc.gnu.org-only operations which are
related to diff generation only if diffs have been requested.
(build_sources): Improve tracing and an error message related
to tagging.
From-SVN: r68924
|
|
From-SVN: r68923
|
|
Revert the fix for libstdc++/11378.
From-SVN: r68922
|
|
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/11378
* include/std/std_fstream.h (xsputn): In the unbuffered case,
provided always_noconv(), issue directly _M_file.xsputn.
* testsuite/performance/filebuf_unbuf_sputn.cc: New.
From-SVN: r68921
|
|
* config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define.
* config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise.
From-SVN: r68920
|
|
Koenig lookup.
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
* include/bits/stl_list.h: Fully qualify standard
functions with std::, thus avoiding Koenig lookup.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_raw_storage_iter.h: Likewise.
* include/bits/stl_tempbuf.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_uninitialized.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/ext/rope: Change includes order.
From-SVN: r68919
|
|
2003-07-04 Benjamin Kosnik <bkoz@redhat.com>
* configure.host (fpos_include_dir): Fix.
From-SVN: r68918
|
|
PR c++/5287, PR c++/7910, PR c++/11021
* testsuite/g++.dg/ext/dllimport1.C: Add mingw32 as target. Add
tests for warnings.
* testsuite/g++.dg/ext/dllimport2.C: Add tests for warnings.
* testsuite/g++.dg/ext/dllimport3.C: Likewise.
* testsuite/g++.dg/ext/dllimport4.C: New file.
* testsuite/g++.dg/ext/dllimport5.C: New file.
* testsuite/g++.dg/ext/dllimport6.C: New file.
* testsuite/g++.dg/ext/dllimport7.C: New file.
* testsuite/g++.dg/ext/dllimport8.C: New file.
* testsuite/g++.dg/ext/dllimport9.C: New file.
* testsuite/g++.dg/ext/dllimport10.C: New file.
* testsuite/g++.dg/ext/dllexport1.C: New file.
From-SVN: r68917
|
|
PR c++/5287, PR c++/7910, PR c++/11021
* config/i386/winnt.c (ix86_handle_dll_attribute): Don't add
dllimport attribute if function is defined at declaration, but
report error instead. Likewise for dllimport'd variable
definitions. Set implicit TREE_PUBLIC for dllimport'd variables
declared within functions, Report error if dllimport or dllexport
symbol is not global.
(i386_pe_dllimport_p): Ignore dllimport attribute of functions
if defined after declaration or if inlined. Don't allow definition
of static data members of C++ classes. Don't dllimport virtual
methods.
(i386_pe_mark_dllexport): Warn about inconsistent dll attributes.
(i386_pe_mark_dllimport): Remove unnecessary checks.
(i386_pe_encode_section_info): Warn if the dllimport attribute
and symbol prefix have been instantiated and then overridden.
* doc/extend.texi: Document dllimport and dllexport attributes.
* config/i386/winnt.c (i386_pe_output_labelref): Fix indents.
From-SVN: r68916
|
|
Koenig lookup.
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
* include/bits/stl_heap.h: Fully qualify standard
functions with std::, thus avoiding Koenig lookup.
* include/bits/stl_iterator_base_funcs.h: Likewise.
* include/bits/stl_algo.h: Qualify __iterator_category too.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_algo.h: Don't qualify the pair type.
From-SVN: r68915
|
|
2003-07-03 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (target_headers): Add fpos.h
(bits_headers): Remove.
* include/Makefile.in: Regenerate.
* configure.in: Add FPOS_INC_SRCDIR, substitute it.
* configure: Regenerate.
* configure.host: Add fpos_include_dir.
* config/os/gnu-linux/fpos.h: New.
* config/os/generic/fpos.h: Add.
* include/bits/fpos.h: Remove.
* config/io/c_io_stdio.h: Remove fpos_t typedef.
* include/bits/fstream.tcc: Tweaks.
* include/std/std_fstream.h: Same.
* testsuite/27_io/fpos/1.cc (test01): Uncomment. Move to...
* testsuite/27_io/fpos/mbstate_t/1.cc: ...here.
* testsuite/27_io/fpos/mbstate_t/2.cc: Same.
* testsuite/27_io/fpos/mbstate_t/3.cc: Same.
* testsuite/27_io/fpos/1.cc: New.
From-SVN: r68914
|
|
2003-07-03 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (target_headers): Add fpos.h
(bits_headers): Remove.
* include/Makefile.in: Regenerate.
* configure.in: Add FPOS_INC_SRCDIR, substitute it.
* configure: Regenerate.
* configure.host: Add fpos_include_dir.
* config/os/gnu-linux/fpos.h: New.
* config/os/generic/fpos.h: Add.
* include/bits/fpos.h: Remove.
* config/io/c_io_stdio.h: Remove fpos_t typedef.
* include/bits/fstream.tcc: Tweaks.
* include/std/std_fstream.h: Same.
* testsuite/27_io/fpos/1.cc (test01): Uncomment. Move to...
* testsuite/27_io/fpos/mbstate_t/1.cc: ...here.
* testsuite/27_io/fpos/mbstate_t/2.cc: Same.
* testsuite/27_io/fpos/mbstate_t/3.cc: Same.
* testsuite/27_io/fpos/1.cc: New.
2003-07-03 Benjamin Kosnik <bkoz@redhat.com>
Petur Runolfsson <peturr02@ru.is>
* include/std/std_streambuf.h: Remove _M_pos.
* config/io/basic_file_stdio.h: Use seekpos instead of seekoff.
* config/io/basic_file_stdio.cc: Same, use fseek instead of lseek,
use fread/fwrite instead of read/write.
* testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc: Fix.
* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: Close filebufs
before reading again.
* testsuite/27_io/objects/char/6.cc: Tweak.
Co-Authored-By: Petur Runolfsson <peturr02@ru.is>
From-SVN: r68913
|
|
* config/kaos.h (CPP_PREDEFINES): Delete.
(TARGET_OS_CPP_BUILTINS): New.
From-SVN: r68912
|
|
* call.c (build_addr_func): Handle bound pointers-to-members.
(build_method_call): Do not call resolve_offset_ref.
(implicit_conversion): Likewise.
(resolve_scoped_fn_name): Use finish_non_static_data_member, not
resolve_offset_ref.
(resolve_args): Do not call resolve_offset_ref.
(build_conditional_expr): Likewise.
(build_new_method_call): Likewise.
* cp-tree.def (OFFSET_REF): Update documentation.
(cp_convert_to_pointer): Update handling of conversions from
pointers to members to pointers.
(ocp_convert): Do not call resolve_offset_ref.
(convert_to_void): Likewise.
(build_expr_type_conversion): Likewise.
(delete_sanity): Likewise.
(resolve_offset_ref): Simplify greatly.
(build_vec_delete): Do not call resolve_offset_ref.
* parser.c (cp_parser_postfix_expression): Call resolve_offset_ref
if appropriate.
(cp_parser_unary_expression): Use
cp_parser_simple_cast_expression.
(cp_parser_delete_expression): Likewise.
(cp_parser_cast_expression): Likewise.
(cp_parser_pm_expression): Use cp_parser_binary_op.
(cp_parser_simple_cast_expression): New function.
* rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref.
* semantics.c (finish_increment_expr): Likewise.
(finish_typeof): Likewise.
* tree.c (lvalue_p_1): Do not handle OFFSET_REF.
* typeck.c (require_complete_type): Do not handle OFFSET_REFs.
(decay_conversion): Do not call resolve_offset_ref.
(finish_class_member_access_expr): Likewise.
(convert_arguments): Likewise.
(build_x_binary_op): Handle DOTSTAR_EXPR.
(condition_conversion): Do not call resolve_offset_ref.
(unary_complex_lvalue): Likewise.
(build_static_cast): Likewise.
(build_reinterpret_cast): Likewise.
(build_const_cast): Likewise.
(build_c_cast): Likewise.
(build_modify_expr): Likewise.
(convert_for_assignment): Likewise.
(convert_for_initialization): Likewise.
* typeck2.c (build_x_arrow): Likewise.
(build_m_component_ref): Simplify.
* g++.old-deja/g++.jason/typeid1.C: Add dg-error marker.
* g++.old-deja/g++.mike/net36.C: Tweak error messages.
From-SVN: r68911
|
|
gcc:
* c-aux-info.c: Include toplev.h after c-tree.h.
* c-common.c: Likewise.
(GCC_DIAG_STYLE): Undef.
* c-semantics.c (GCC_DIAG_STYLE): Define.
* c-tree.h (GCC_DIAG_STYLE): Likewise.
* diagnostic.h (inform): Move prototype to toplev.h.
* jump.c: Include diagnostic.h before toplev.h.
* toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define.
(warning, error, fatal_error, pedwarn, sorry, inform,
error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG.
cp:
* cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
(cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
ATTRIBUTE_GCC_CXXDIAG.
From-SVN: r68910
|
|
From-SVN: r68908
|
|
edge is not specified.
* cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies
at all if edge is not specified.
(can_copy_bbs_p, copy_bbs): New.
* cfglayout.h (can_copy_bbs_p, copy_bbs): Declare.
* cfgloop.c (get_loop_body): Comment more precisely.
* cfgloopmanip.c (copy_bbs, record_exit_edges): Removed.
(scale_bbs_frequencies): Fix comment typo.
(can_duplicate_loop_p): Use can_copy_bbs_p.
(duplicate_loop_to_header_edge): Simplify by using copy_bbs.
From-SVN: r68906
|
|
* c-opts.c (c_common_parse_file): Remove extra
debug_hooks->start_source_file call.
From-SVN: r68905
|
|
* misc.c (gnat_argv): Revert last change.
(gnat_handle_option, gnat_init_options): Copy arguments.
From-SVN: r68904
|
|
respectively.
* real.c (real_trunc, real_floor, real_ceil): New functions
to implement trunc, floor and ceil respectively.
* real.h (real_trunc, real_floor, real_ceil): Prototype here.
* builtins.c (integer_valued_real_p): New function to test if
a floating point expression has an integer valued result.
(fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as
foo(x) where foo is an integer rounding function. Similarly,
optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as
(double)(int)x when both foo and bar are integer rounding
functions and we don't need to honor errno.
(fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil):
New functions to fold trunc, floor and ceil.
(fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*,
fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil
to fold BUILT_IN_CEIL*.
* fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and
the remaining integer rounding functions.
* gcc.dg/builtins-25.c: New testcase.
* gcc.dg/builtins-26.c: New testcase.
From-SVN: r68903
|
|
* gcc.dg/compat/vector-defs.h: New file.
* gcc.dg/compat/vector-setup.h: New file.
* gcc.dg/compat/vector-check.h: New file.
* gcc.dg/compat/vector-1_main.c: New file.
* gcc.dg/compat/vector-1_x.c: New file.
* gcc.dg/compat/vector-1_y.c: New file.
* gcc.dg/compat/vector-2_main.c: New file.
* gcc.dg/compat/vector-2_x.c: New file.
* gcc.dg/compat/vector-2_y.c: New file.
From-SVN: r68902
|
|
* gcc.dg/compat/fnptr-by-value-1_main.c: New file.
* gcc.dg/compat/fnptr-by-value-1_x.c: New file.
* gcc.dg/compat/fnptr-by-value-1_y.c: New file.
* gcc.dg/compat/struct-align-1.h: New file.
* gcc.dg/compat/struct-align-1_main.c: New file.
* gcc.dg/compat/struct-align-1_x.c: New file.
* gcc.dg/compat/struct-align-1_y.c: New file.
* gcc.dg/compat/struct-align-2.h: New file.
* gcc.dg/compat/struct-align-2_main.c: New file.
* gcc.dg/compat/struct-align-2_x.c: New file.
* gcc.dg/compat/struct-align-2_y.c: New file.
From-SVN: r68901
|
|
where to split unnamed complex FP arguments.
* config/sparc/sparc.c (function_arg_partial_nregs): Use
SPARC_INT_ARG_MAX to determine where to split unnamed
complex FP arguments.
From-SVN: r68900
|
|
* basic-block.h (create_basic_block, merge_blocks_nomove): Kill.
* cfgcleanup.c (merge_blocks): Rename to merge_blocks_move.
(merge_blocks_move_predecessor_nojumps,
merge_blocks_move_successor_nojumps): Use merge_blocks.
(try_optimize_cfg): Use merge_blocks_move.
* cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block.
(merge_blocks_nomove): Rename to rtl_merge_blocks.
(cfg_layout_create_basic_block): New.
(rtl_can_merge_blocks): New.
(cfg_layout_split_block): Do not alloc aux by hand.
* cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p,
merge_blocks.
(create_basic_block, can_merge_blocks_p, merge_blocks): New macros.
* cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand.
* cfgloopmanip.c (loop_split_edge_with): Likewise.
* ifcvt.c (merge_if_block): Use merge_blocks_nomove.
* basic-block.h (basic_block_def): Add field 'rbi'.
* bb-reorder.c (find_traces, rotate_loop, mark_bb_visited,
find_traces_1_round, copy_bb, connect_traces): Update use of rbi.
* cfg.c (entry_exit_blocks): Add new field.
* cfglayout.c: Include alloc-pool.h;
(cfg_layout_pool): New.
(record_effective_endpoints, fixup_reorder_chain,
fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use
of rbi.
(cfg_layout_initialize_rbi): New function.
(cfg_layout_initialize): Use it.
(cfg_layout_finalize): Clear rbi fields.
* cfglayout.h (RBI): Kill.
(cfg_layout_initialize_rbi): Declare.
* cfgloopmanip.c (copy_bbs): Use rbi.
(record_exit_edges): Likewise.
(duplicate_loop_to_header_edge): Likewise.
* cfgrtl.c (cfg_layout_create_basic_block): Use
cfg_layout_initialize_rbi.
(cfg_layout_split_block): Use rbi.
(cfg_layout_delete_block): Likewise.
* loop-init.c (loop_optimizer_finalize): Likewise.
* loop-unswitch.c (unswitch_loop): Likewise.
* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
* cfgrtl.c: Update comments.
(try_redirect_by_replacing_jump): New argument.
(redirect_branch_edge): Break out from ...
(rtl_redirect_edge_and_branch): ... this one.
(update_cfg_after_block_merging): Break out from ...
(rtl_merge_blocks): ... this one.
(cfg_layout_split_edge): New.
(cfg_layout_merge_blocks): New.
(cfg_layout_can_merge_blocks_p): New.
(cfg_layout_redirect_edge_and_branch): Reorganize.
(cfg_layout_rtl_cfg_hooks): Fill in.
(cfg_layout_delete_block): Kill barriers.
* cfganal.c (can_fallthru): Deal with exit blocks
* cfglayout.c (cfg_layout_function_header): New function
(record_effective_endpoints): Record function header.
(fixup_reorder_chain): Fixup dead jumptables; place header
* basic-block.h (CLEANUP_CFGLAYOUT): New flag.
* bb-reorder.c (cfg_layout_initialize): Update call.
* cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru
edges in cfglayout mode.
* cfglayout.c (cleanup_unconditional_jumps): Kill.
(cfg_layout_initialize): Kill agrument loops; use cfgcleanup.
* cfglayout.h (cfg_layout_initialize): Update prototype.
* cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill.
* cfgloopmanip.c (loop_split_edge_with): Use split_edge.
* flow.c (propagate_block): Do not crash when basic block ends
by first insn in the chain.
* loop-init.c (loop_optimizer_init): First enter cfglayout mode; later
do loop discovery.
* tracer.c (tracer): Update call of cfg_layout_initialize.
From-SVN: r68899
|
|
* gcc.dg/compat/compat-common.h (DEBUG_FINI): New.
* gcc.dg/compat/scalar-by-value-1_x.c: Use it.
* gcc.dg/compat/scalar-by-value-2_x.c: Ditto.
* gcc.dg/compat/scalar-by-value-3_x.c: Ditto.
* gcc.dg/compat/scalar-by-value-4_x.c: Ditto.
* gcc.dg/compat/scalar-return-1_x.c: Ditto.
* gcc.dg/compat/scalar-return-2_x.c: Ditto.
* gcc.dg/compat/scalar-return-3_x.c: Ditto.
* gcc.dg/compat/scalar-return-4_x.c: Ditto.
* gcc.dg/compat/struct-by-value-10_x.c: Ditto.
* gcc.dg/compat/struct-by-value-11_x.c: Ditto.
* gcc.dg/compat/struct-by-value-12_x.c: Ditto.
* gcc.dg/compat/struct-by-value-13_x.c: Ditto.
* gcc.dg/compat/struct-by-value-14_x.c: Ditto.
* gcc.dg/compat/struct-by-value-15_x.c: Ditto.
* gcc.dg/compat/struct-by-value-16_x.c: Ditto.
* gcc.dg/compat/struct-by-value-17_x.c: Ditto.
* gcc.dg/compat/struct-by-value-18_x.c: Ditto.
* gcc.dg/compat/struct-by-value-2_x.c: Ditto.
* gcc.dg/compat/struct-by-value-3_x.c: Ditto.
* gcc.dg/compat/struct-by-value-4_x.c: Ditto.
* gcc.dg/compat/struct-by-value-5_x.c: Ditto.
* gcc.dg/compat/struct-by-value-6_x.c: Ditto.
* gcc.dg/compat/struct-by-value-7_x.c: Ditto.
* gcc.dg/compat/struct-by-value-8_x.c: Ditto.
* gcc.dg/compat/struct-by-value-9_x.c: Ditto.
* gcc.dg/compat/struct-return-10_x.c: Ditto.
* gcc.dg/compat/struct-return-2_x.c: Ditto.
* gcc.dg/compat/struct-return-3_x.c: Ditto.
From-SVN: r68898
|
|
* Makefile.in: Use dependency variables in lieu of explicit
files throughout.
From-SVN: r68896
|
|
* call.c (build_scoped_method_call): Use convert_to_void.
(build_method_call): Likewise.
* class.c (check_field_decls): Remove dead code.
* cvt.c (convert_from_reference): Remove OFFSET_TYPE handling.
* decl2.c (grok_array_decl): Remove dead code.
(arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
as pointer-to-member representation.
* init.c (build_offset_ref): Tidy.
(build_vec_delete_1): Use convert_to_void.
* mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE
as pointer-to-member representation.
From-SVN: r68895
|