gcc/gcc
Ian Lance Taylor 7d882b8356 c-common.c (skip_evaluation): Don't define.
./:	* c-common.c (skip_evaluation): Don't define.
	(c_inhibit_evaluation_warnings): Define global variable.
	(overflow_warning): Check c_inhibit_evaluation_warnings rather
	than skip_evaluation.
	(convert_and_check, warn_for_div_by_zero): Likewise.
	* c-common.h (skip_evaluation): Don't declare.
	(c_inhibit_evaluation_warnings): Declare.
	* c-parser.c (c_parser_typeof_specifier): Set
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	(c_parser_conditional_expression): Likewise.
	(c_parser_binary_expression): Likewise.
	(c_parser_sizeof_expression): Likewise.
	(c_parser_alignof_expression): Likewise.
	* c-typeck.c (build_indirect_ref): Check
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	(build_conditional_expr, build_binary_op): Likewise.
cp/:
	* parser.c (cp_unevaluated_operand): Define global variable.
	(cp_parser_question_colon_clause): Increment
	c_inhibit_evaluation_warnings when evaluating an expression which
	will never be executed.
	(cp_parser_decltype): Increment cp_unevaluated_operand and
	c_inhibit_evaluation_warnings, not skip_evaluation.
	(cp_parser_sizeof_operand): Likewise.
	(cp_parser_enclosed_template_argument_list): Save
	cp_unevaluated_operand and c_inhibit_evaluation_warnings, not
	skip_evaluation.
	* cp-tree.h (struct saved_scope): Remove skip_evaluation field.
	Add unevaluated_operand and inhibit_evaluation_warnings fields.
	(cp_unevaluated_operand): Declare.
	* name-lookup.c (push_to_top_level): Save cp_unevaluated_operand
	and c_inhibit_evaluation_warnings rather than skip_evaluation.
	(pop_from_top_level): Restore cp_unevaluated_operand and
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	* class.c (build_base_path): Check cp_unevaluated_operand rather
	than skip_evaluation.
	* typeck.c (build_class_member_access_expr): Likewise.
	(cp_build_binary_op): Don't warn about bad shift counts if
	c_inhibit_evaluation_warnings is non-zero.
	* pt.c (coerce_template_parms): Save state of
	cp_unevaluated_operand and c_inhibit_evaluation_warnings, not
	skip_evaluation.
	(tsubst_aggr_type): Likewise.
	(tsubst_pack_expansion): Check cp_unevaluated_operand rather than
	skip_evaluation.
	(tsubst_copy): Likewise.
	(tsubst): Set cp_unevaluated_operand and
	c_inhibit_evaluation_warnings, not skip_evaluation.
	(tsubst_copy_and_build): Likewise.
	* call.c (convert_arg_to_ellipsis): Check cp_unevaluated_operand
	rather than skip_evaluation.
	* decl2.c (mark_used): Likewise.
	* semantics.c (finish_non_static_data_member): Likewise.
	* cvt.c (cp_convert_and_check): Check
	c_inhibit_evaluation_warnings rather than skip_evaluation.
	* mangle.c (write_type): Set cp_unevaluated_operand rather than
	skip_evaluation.
testsuite/:
	* g++.dg/warn/skip-1.C: New testcase.

From-SVN: r148535
2009-06-16 14:24:40 +00:00
..
ada Fix nits 2009-06-13 19:18:57 +00:00
config winnt.c (i386_pe_encode_section_info): Update call to make_decl_one_only. 2009-06-16 10:59:59 +00:00
cp c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
doc invoke.texi (Debugging Options): Fix option index entries for -fdump-statistics... 2009-06-16 06:41:44 +00:00
fortran re PR fortran/36947 (Attributes not fully checked comparing actual vs dummy procedure) 2009-06-16 11:06:13 +02:00
ginclude Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
java java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
objc df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
objcp rs6000-protos.h (altivec_resolve_overloaded_builtin): Change first argument type to location_t. 2009-06-13 21:27:56 +00:00
po * gcc.pot: Regenerate. 2009-05-10 11:36:44 +01:00
testsuite c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
ABOUT-GCC-NLS ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
BASE-VER * BASE-VER: Change to 4.5.0. 2009-03-27 20:56:48 +00:00
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
ChangeLog-1997 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-1998 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-1999 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2000 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2001 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2002 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2003 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2004 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2005 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2006 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2007 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2008 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.dataflow ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.lib ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.ptr ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.tree-ssa ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.tuples ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
DATESTAMP Daily bump. 2009-06-16 00:16:33 +00:00
DEV-PHASE
FSFChangeLog ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
FSFChangeLog.10 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
FSFChangeLog.11 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
LANGUAGES ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
Makefile.in timevar.def (TV_COMBINE_STACK_ADJUST): New timevar. 2009-06-12 22:34:18 +00:00
ONEWS ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
README.Portability
acinclude.m4 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
aclocal.m4 re PR target/27880 (undefined reference to `_Unwind_GetIPInfo') 2008-11-12 21:37:34 +00:00
addresses.h
alias.c alias.c (find_base_term): Check for NULL term before returning. 2009-06-01 15:20:20 +00:00
alias.h re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) 2009-04-03 10:24:28 +00:00
alloc-pool.c alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value instead of an int. 2009-04-30 16:24:31 +00:00
alloc-pool.h
attribs.c attribs.c (register_attribute): Use CONST_CAST. 2009-06-01 16:35:01 +00:00
auto-inc-dec.c auto-inc-dec.c: Fix pass description, remove apparent accidental duplication. 2009-05-14 20:12:09 +00:00
basic-block.h basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of them is supposed to hold actual statements. 2009-06-07 21:26:59 +02:00
bb-reorder.c bb-reorder.c (partition_hot_cold_basic_blocks): Do not enter/exit cfglayout mode. 2009-03-30 08:58:52 +00:00
bitmap.c re PR middle-end/39301 (ICE in register_overhead, at bitmap.c:115) 2009-05-16 15:42:15 -07:00
bitmap.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
bt-load.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
builtin-attrs.def
builtin-types.def
builtins.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
builtins.def re PR c/39252 (Request new feature __builtin_unreachable ()) 2009-06-11 23:55:45 +00:00
c-aux-info.c
c-common.c c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
c-common.def re PR middle-end/323 (optimized code gives strange floating point results) 2009-03-30 02:50:44 +01:00
c-common.h c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
c-config-lang.in
c-convert.c tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE... 2009-05-20 23:06:12 -04:00
c-cppbuiltin.c re PR c/39037 (FLOAT_CONST_DECIMAL64 pragma not supported) 2009-05-07 22:34:08 +00:00
c-decl.c df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
c-dump.c
c-errors.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
c-format.c * c-format.c (handle_format_attribute): Fix comment typo. 2009-05-22 11:51:19 +10:00
c-format.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
c-gimplify.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
c-lang.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
c-lex.c c-lex.c (c_lex_with_flags): Expect cpp_hashnode in tok->val.node.node. 2009-05-10 15:27:32 +01:00
c-objc-common.c c-objc-common.c (c_tree_printer): Print identifiers with pp_identifier, not pp_string. 2009-05-01 15:09:20 +01:00
c-objc-common.h c-common.c (c_expand_expr, c_staticp): Remove. 2009-03-29 18:26:43 +00:00
c-omp.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
c-opts.c df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
c-parser.c c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
c-pch.c
c-ppoutput.c re PR preprocessor/34695 (Preprocessor warning->error conversion from -Werror is silent) 2009-03-29 23:56:07 +01:00
c-pragma.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
c-pragma.h
c-pretty-print.c pretty-print.h (struct pretty_print_info): Add translate_identifiers. 2009-05-10 11:28:34 +01:00
c-pretty-print.h c-objc-common.c (c_tree_printer): Print identifiers with pp_identifier, not pp_string. 2009-05-01 15:09:20 +01:00
c-semantics.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
c-tree.h df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
c-typeck.c c-common.c (skip_evaluation): Don't define. 2009-06-16 14:24:40 +00:00
c.opt df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
caller-save.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
calls.c Revert due to PR40320: 2009-06-01 14:45:18 +00:00
cfg.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfganal.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfgbuild.c cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks references from comments. 2009-04-22 04:48:34 +00:00
cfgcleanup.c cfgcleanup.c (old_insns_match_p): Remove code to substitute REG_EQUAL/REG_EQUIV notes. 2009-06-13 23:15:48 +00:00
cfgexpand.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
cfghooks.c cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks references from comments. 2009-04-22 04:48:34 +00:00
cfghooks.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfglayout.c cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
cfglayout.h
cfgloop.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfgloop.h ipa-pure-const.c (struct funct_state_d): New fields state_previously_known, looping_previously_known... 2009-04-26 23:35:27 +00:00
cfgloopanal.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfgloopmanip.c re PR middle-end/39124 (-fno-exceptions leads to a ICE) 2009-02-10 17:23:17 +01:00
cfgrtl.c re PR c/39252 (Request new feature __builtin_unreachable ()) 2009-06-11 23:55:45 +00:00
cgraph.c cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP. 2009-06-15 14:52:41 +00:00
cgraph.h cgraph.c (cgraph_node_can_be_local_p): New function. 2009-06-10 18:43:24 +02:00
cgraphbuild.c cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 2009-05-10 15:11:01 +00:00
cgraphunit.c cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
cif-code.def Bring from lto-branch: 2009-03-28 11:10:06 +00:00
collect2-aix.c Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 2009-06-02 19:06:56 +00:00
collect2-aix.h Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 2009-06-02 19:06:56 +00:00
collect2.c re PR bootstrap/40430 (collect2.c fails to compile: new qualifiers in middle of multi-level non-const cast are unsafe) 2009-06-12 17:45:57 +00:00
collect2.h
combine-stack-adj.c timevar.def (TV_COMBINE_STACK_ADJUST): New timevar. 2009-06-12 22:34:18 +00:00
combine.c * combine.c (move_deaths): Compare LUIDs within the same BB only. 2009-06-02 08:08:13 +00:00
common.opt common.opt (gdwarf-): Accept a version number. 2009-06-11 20:08:11 -07:00
conditions.h
config.build
config.gcc Commit moxie port. 2009-06-10 05:23:39 +00:00
config.host config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha. 2009-03-24 10:33:57 +00:00
config.in basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
configure basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
configure.ac basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
convert.c re PR middle-end/323 (optimized code gives strange floating point results) 2009-03-30 02:50:44 +01:00
convert.h
coretypes.h tree.c (list_equal_p): New function. 2009-04-25 18:27:19 +00:00
coverage.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
coverage.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cppdefault.c
cppdefault.h
cppspec.c
crtstuff.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
cse.c re PR middle-end/33699 (missing optimization on const addr area store) 2009-05-28 07:42:52 +00:00
cselib.c re PR rtl-optimization/39794 (Miscompile with -O2 -funroll-loops) 2009-04-24 08:58:02 +02:00
cselib.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
cstamp-h.in
dbgcnt.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
dbgcnt.def dbgcnt.def (cprop1, [...]): Remove 2009-04-27 17:21:27 +00:00
dbgcnt.h
dbxout.c basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
dbxout.h
dce.c tree-ssa-operands.c (get_expr_operands): Do not handle INDIRECT_REFs in the handled-component case. 2009-05-29 09:49:42 +00:00
dce.h
ddg.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ddg.h
debug.c basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
debug.h basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
defaults.h * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE) 2009-05-19 18:12:57 +00:00
df-byte-scan.c re PR middle-end/37448 (cannot compile big function) 2008-10-11 23:39:21 +00:00
df-core.c * df-core.c (df_ref_debug): Honor -fdump-noaddr. 2009-06-02 08:08:57 +00:00
df-problems.c df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
df-scan.c vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I. 2009-06-10 16:21:03 +00:00
df.h re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475) 2009-05-08 12:22:30 +00:00
dfp.c re PR middle-end/39986 (decimal float constant is incorrect when cc1 is a 64-bit binary) 2009-05-06 16:59:53 +00:00
dfp.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
diagnostic.c diagnostic.c (diagnostic_build_prefix): Always print columns. 2009-06-01 16:09:33 +00:00
diagnostic.def ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
diagnostic.h tree-pretty-print.c (print_call_name): Take the callee, not the call itself. 2009-05-31 18:01:38 -04:00
dojump.c Merge cond-optab branch. 2009-05-12 09:43:48 +00:00
dominance.c basic-block.h (get_all_dominated_blocks): Declare. 2009-04-20 14:01:52 +00:00
domwalk.c
domwalk.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
double-int.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
double-int.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
dse.c re PR middle-end/40035 (ICE when cross-compiling with -Os) 2009-05-14 06:52:00 +10:00
dse.h
dummy-checksum.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
dwarf2.h common.opt (gdwarf-): Accept a version number. 2009-06-11 20:08:11 -07:00
dwarf2asm.c cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
dwarf2asm.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
dwarf2out.c dwarf2out.c (last_var_location_insn): New variable. 2009-06-12 09:01:25 +02:00
dwarf2out.h cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
ebitmap.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ebitmap.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
emit-rtl.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
emit-rtl.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
emutls.c re PR other/40024 (trunk/gcc-4.3/gcc: * emutls.c (emutls_destroy): Don' t fall out of the array bound.) 2009-06-01 20:03:26 +02:00
errors.c errors.c (internal_error): Commentary typo fix. 2009-06-07 21:29:43 +02:00
errors.h Makefile.in: Update dependencies. 2009-04-22 16:01:29 +00:00
et-forest.c
et-forest.h
except.c except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl. 2009-06-15 14:27:18 +00:00
except.h cgraph.c (dump_cgraph_node): Dump size/time/benefit. 2009-05-25 21:59:24 +00:00
exec-tool.in Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
explow.c tm.texi (LEGITIMIZE_ADDRESS): Revise documentation. 2009-05-04 12:52:41 +00:00
expmed.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
expr.c re PR middle-end/40446 (ICE in gen_lowpart_general) 2009-06-16 15:48:07 +02:00
expr.h Merge cond-optab branch. 2009-05-12 09:43:48 +00:00
final.c common.opt (fcompare-debug=, [...]): New. 2009-06-08 07:46:02 +00:00
fixed-value.c collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. 2009-04-27 20:25:48 +00:00
fixed-value.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
flags.h flags.h (extra_warnings): Delete. 2009-05-03 19:14:06 +00:00
fold-const.c cpplib.h (struct cpp_options): Add warn_cxx_operator_names field. 2009-06-12 19:43:25 +00:00
fp-test.c
function.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
function.h alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
fwprop.c re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475) 2009-05-08 12:22:30 +00:00
gbl-ctors.h gbl-ctors.h: Add header guard. 2009-06-07 21:53:14 +02:00
gcc-plugin.h attribute_plugin.c: Include gcc-plugin.h first. 2009-05-27 12:57:59 +00:00
gcc.c * gcc.c (compare_files): Cast munmap argumento to caddr_t. 2009-06-10 12:55:34 +00:00
gcc.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
gccbug.in
gccspec.c
gcov-dump.c gcc.c (process_command): Update copyright notice dates. 2009-02-03 21:48:23 +01:00
gcov-io.c
gcov-io.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gcov-iov.c
gcov.c df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
gcse.c gcse.c (target.h): Include. 2009-05-27 18:47:26 +00:00
gdbinit.in ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
genattr.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genattrtab.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
genautomata.c Makefile.in: Update dependencies. 2009-04-22 16:01:29 +00:00
gencheck.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genchecksum.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genextract.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
genflags.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
gengenrtl.c
gengtype-lex.l hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
gengtype-parse.c gengtype-parse.c (parse_error): Add newline after message. 2009-04-24 09:46:47 -04:00
gengtype.c plugins.texi (Interacting with the GCC Garbage Collector): Mention the plugin mode of gengtype. 2009-06-16 05:56:39 +00:00
gengtype.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genmddeps.c
genmodes.c
genmultilib
genopinit.c Merge cond-optab branch. 2009-05-12 09:43:48 +00:00
genoutput.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
genpeep.c
genpreds.c Fix from Dave Korn in case a backend does not declare any define_register_constraints 2009-04-30 21:52:15 +00:00
genrecog.c basic-block.h (enum profile_status): Break out of struct control_flow_graph. 2009-05-11 01:02:40 +00:00
gensupport.c collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. 2009-04-27 20:25:48 +00:00
gensupport.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ggc-common.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
ggc-none.c
ggc-page.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
ggc-zone.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
ggc.h plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
gimple-iterator.c errors.c (internal_error): Commentary typo fix. 2009-06-07 21:29:43 +02:00
gimple-low.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
gimple-pretty-print.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
gimple.c re PR c++/40389 (optimizer bug (possibly)) 2009-06-13 22:58:13 +00:00
gimple.def re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
gimple.h re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
gimplify.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
glimits.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
graph.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
graph.h
graphds.c
graphds.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
graphite.c re PR bootstrap/40408 (bootstrap boken again!) 2009-06-10 22:46:38 +00:00
graphite.h alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
gsstruct.def Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
gstab.h gstab.h (stab_code_type): Define, to be used instead of the __stab_debug_code enum, made anonymous. 2009-05-20 12:44:44 +00:00
gsyms.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
gsyslimits.h
gthr-aix.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-dce.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-gnat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-gnat.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-lynx.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-mipssde.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-nks.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix95.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-rtems.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-single.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-solaris.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-tpf.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-vxworks.h gthr-vxworks.h (struct __gthread_once_t): Add alignment and padding for PPC. 2009-04-22 10:53:53 +00:00
gthr-win32.h mingw-tls.c: New file. 2009-05-30 11:05:56 +02:00
gthr.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
haifa-sched.c collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. 2009-04-27 20:25:48 +00:00
hard-reg-set.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
hooks.c tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE... 2009-05-20 23:06:12 -04:00
hooks.h tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE... 2009-05-20 23:06:12 -04:00
host-default.c
hosthooks-def.h
hosthooks.h
hwint.h re PR middle-end/39301 (ICE in register_overhead, at bitmap.c:115) 2009-05-16 15:42:15 -07:00
ifcvt.c Merge cond-optab branch. 2009-05-12 09:43:48 +00:00
incpath.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
incpath.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
init-regs.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
input.h
insn-addr.h
insn-notes.def cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
integrate.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
integrate.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
intl.c intl.c (locale_encoding, [...]): New. 2009-05-04 13:23:50 +01:00
intl.h intl.c (locale_encoding, [...]): New. 2009-05-04 13:23:50 +01:00
ipa-cp.c cgraph.c (dump_cgraph_node): Dump size/time/benefit. 2009-05-25 21:59:24 +00:00
ipa-inline.c cgraph.c (dump_cgraph_node): Dump size/time/benefit. 2009-05-25 21:59:24 +00:00
ipa-prop.c re PR tree-optimization/40323 (compiling just takes forever and doesn't really process) 2009-06-03 13:56:05 +02:00
ipa-prop.h cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument; handle correctly when profile is absent. 2009-05-08 19:19:51 +00:00
ipa-pure-const.c alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
ipa-reference.c alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
ipa-reference.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ipa-struct-reorg.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
ipa-struct-reorg.h tree-parloops.c: Change license to GPLv3. 2009-02-10 17:59:08 +00:00
ipa-type-escape.c ipa-reference.c: Do not include c-common.h, include splay-tree.h. 2009-05-01 20:25:26 +00:00
ipa-type-escape.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ipa-utils.c ipa-reference.c: Do not include c-common.h, include splay-tree.h. 2009-05-01 20:25:26 +00:00
ipa-utils.h re PR middle-end/40147 (Memory leak in revision 147436) 2009-05-14 08:45:32 -07:00
ipa.c cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 2009-05-10 15:11:01 +00:00
ira-build.c revert: reload.c (push_reload, [...]): Use df_get_live_out instead of DF_LR_OUT. 2009-04-03 22:02:33 +00:00
ira-color.c re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-conflicts.c ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional. 2009-05-15 20:05:36 +00:00
ira-costs.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
ira-emit.c re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-int.h re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-lives.c re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira.c Fix from Dave Korn in case a backend does not declare any define_register_constraints 2009-04-30 21:52:15 +00:00
ira.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
jump.c jump.c (returnjump_p): Handle delayed branches. 2009-06-08 18:49:17 +00:00
lambda-code.c re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) 2009-04-03 10:24:28 +00:00
lambda-mat.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lambda-trans.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lambda.h re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear) 2009-01-08 17:01:42 +01:00
langhooks-def.h cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
langhooks.c cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
langhooks.h cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
lcm.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
libfuncs.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
libgcc-std.ver ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
libgcc2.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
libgcc2.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
libgcov.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
limitx.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
limity.h
lists.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
longlong.h longlong.h (sub_ddmmss): New for ia64. 2009-02-12 08:30:53 -08:00
loop-doloop.c re PR rtl-optimization/37782 (Stage2 ada compiler miscompiled) 2008-11-03 12:01:11 -08:00
loop-init.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
loop-invariant.c re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475) 2009-05-08 07:51:46 +00:00
loop-iv.c loop-iv.c (simple_rhs_p): Allow expressions that are function_invariant_p. 2009-04-24 11:05:59 +00:00
loop-unroll.c loop-unroll.c (struct iv_to_split): Add pointer to next. 2009-06-02 17:47:33 +00:00
loop-unswitch.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lower-subreg.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
machmode.def
machmode.h Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
main.c re PR other/31567 (cc1, cc1plus, etc. don't support @file mechanism) 2009-04-17 17:11:46 -04:00
matrix-reorg.c tree-flow.h (make_value_handle, [...]): Remove prototypes for removed functions. 2009-06-07 21:44:39 +02:00
mcf.c combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 2009-04-24 15:31:38 +00:00
mips-tdump.c alpha.c (alpha_initialize_trampoline): Change 0 to LCT_NORMAL in function call. 2009-05-14 10:10:23 +00:00
mips-tfile.c gstab.h (stab_code_type): Define, to be used instead of the __stab_debug_code enum, made anonymous. 2009-05-20 12:44:44 +00:00
mkconfig.sh
mkmap-flat.awk Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
mkmap-symver.awk
mode-classes.def
mode-switching.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
modulo-sched.c SMS - Pass the actual schedulable rows to compute_split_row 2009-03-31 06:19:06 +00:00
omega.c alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
omega.h alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
omp-builtins.def
omp-low.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
opt-functions.awk Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
opt-gather.awk
optabs.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
optabs.h alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
optc-gen.awk optc-gen.awk: Warn if an option flag has multiple different help strings. 2009-03-30 05:55:57 +00:00
opth-gen.awk common.opt (gdwarf-): Accept a version number. 2009-06-11 20:08:11 -07:00
opts-common.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
opts.c common.opt (gdwarf-): Accept a version number. 2009-06-11 20:08:11 -07:00
opts.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
output.h tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE... 2009-06-01 14:42:56 +00:00
params.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
params.def 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com> 2009-06-08 16:00:13 +00:00
params.h 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com> 2009-06-08 16:00:13 +00:00
passes.c passes.c: Add bswap pass. 2009-06-14 14:45:32 +00:00
plugin.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
plugin.h 2009-05-13 Taras Glek <tglek@mozilla.com> 2009-05-14 01:38:33 +00:00
pointer-set.c
pointer-set.h
postreload-gcse.c
postreload.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
predict.c cgraph.c (dump_cgraph_node): Dump size/time/benefit. 2009-05-25 21:59:24 +00:00
predict.def Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
predict.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
prefix.c
prefix.h
pretty-print.c pretty-print.h (struct pretty_print_info): Add translate_identifiers. 2009-05-10 11:28:34 +01:00
pretty-print.h pretty-print.h (struct pretty_print_info): Add translate_identifiers. 2009-05-10 11:28:34 +01:00
print-rtl.c print_rtl (print_rtx): Don't print modes in EXPR_LISTs and INSN_LISTs that are out of the REG_NOTE range. 2009-06-02 17:51:00 +00:00
print-tree.c re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
profile.c re PR c/7543 (no warning for always-false "if (!a & 0x4)" bitwise and on boolean value) 2008-10-24 10:09:06 +00:00
profile.h
read-rtl.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
real.c real.c (encode_ieee_half): Define. 2009-05-15 10:22:58 -04:00
real.h builtins.c (do_mpc_arg1, [...]): New. 2009-05-15 18:08:10 +00:00
recog.c re PR middle-end/40316 (Revision 147995 breaks gcc.target/i386/lea.c) 2009-06-01 19:13:04 +02:00
recog.h re PR inline-asm/39058 (ICE with double in inline-asm) 2009-02-02 14:23:43 +01:00
reg-notes.def cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
reg-stack.c re PR target/39856 (ICE in subst_stack_regs_pat, at reg-stack.c:1386) 2009-05-22 19:00:45 +00:00
regcprop.c Makefile.in (OBJS-common): Add regcprop.o. 2009-05-07 15:47:11 +00:00
reginfo.c passes.c (finish_optimization_passes): Change i to int. 2009-05-14 21:29:48 +00:00
regmove.c basic-block.h (enum profile_status): Break out of struct control_flow_graph. 2009-05-11 01:02:40 +00:00
regrename.c Makefile.in (OBJS-common): Add regcprop.o. 2009-05-07 15:47:11 +00:00
regs.h
regstat.c regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. 2009-05-31 23:11:51 +00:00
reload.c tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this in the former documentation of... 2009-05-14 13:42:45 +00:00
reload.h cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts. 2009-03-23 16:29:33 +00:00
reload1.c combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 2009-04-24 15:31:38 +00:00
reorg.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
resource.c re PR rtl-optimization/39938 (build broke for cris-elf with dbr_schedule change) 2009-04-29 21:44:26 +00:00
resource.h
rtl-error.c
rtl.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
rtl.def cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
rtl.h java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
rtlanal.c rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note. 2009-04-16 16:08:04 +00:00
rtlhooks-def.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
rtlhooks.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sbitmap.c
sbitmap.h
sched-deps.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sched-ebb.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sched-int.h basic-block.h (enum profile_status): Break out of struct control_flow_graph. 2009-05-11 01:02:40 +00:00
sched-rgn.c re PR middle-end/37499 (Scheduling pass 2 time increases by order of magnitude) 2008-09-18 12:29:48 +04:00
sched-vis.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sdbout.c basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
sdbout.h
see.c re PR middle-end/37448 (cannot compile big function) 2008-10-11 23:39:21 +00:00
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c re PR rtl-optimization/40101 (200.sixtrack ICEs in get_seqno_by_preds, at sel-sched-ir.c:3752) 2009-05-29 19:33:17 +04:00
sel-sched-ir.h 20071210-2.c: New testcase. 2009-04-28 14:01:52 +04:00
sel-sched.c re PR rtl-optimization/40101 (200.sixtrack ICEs in get_seqno_by_preds, at sel-sched-ir.c:3752) 2009-05-29 19:33:17 +04:00
sel-sched.h
simplify-rtx.c Merge cond-optab branch. 2009-05-12 09:43:48 +00:00
sparseset.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sparseset.h
sreal.c
sreal.h
ssaexpand.h ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 2009-04-27 12:16:00 +00:00
stab.def
stack-ptr-mod.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
statistics.c statistics.c (statistics_counter_event): Do not record event in pass dump if its number == -1. 2009-06-03 18:36:47 +04:00
statistics.h
stmt.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
stor-layout.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
store-motion.c * store-motion.c Do not include params.h 2009-05-14 20:14:18 +00:00
stringpool.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
stub-objc.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
sync-builtins.def
system.h system.h (gcc_assert, [...]): Revert accidental commit in r148403. 2009-06-12 00:04:11 +00:00
target-def.h re PR middle-end/33699 (missing optimization on const addr area store) 2009-05-28 07:42:52 +00:00
target.h java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
targhooks.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
targhooks.h targhooks.c (default_builtin_vectorized_function): Change fn parameter to unsigned int. 2009-06-09 20:34:13 +00:00
timevar.c
timevar.def timevar.def (TV_COMBINE_STACK_ADJUST): New timevar. 2009-06-12 22:34:18 +00:00
timevar.h df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
tlink.c tlink.c: Include "libiberty.h". 2008-11-20 14:21:51 +01:00
toplev.c common.opt (fcompare-debug=, [...]): New. 2009-06-08 07:46:02 +00:00
toplev.h Makefile.in (bversion.h, s-bversion): New targets. 2009-05-22 16:08:04 +10:00
tracer.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-affine.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-affine.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-browser.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-browser.def
tree-call-cdce.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-cfg.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-cfgcleanup.c tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels. 2009-04-25 09:02:05 +00:00
tree-chrec.c dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. 2009-05-15 09:11:40 +00:00
tree-chrec.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-complex.c tree-flow.h (insert_edge_copies_seq): Undeclare. 2009-05-20 12:18:10 +02:00
tree-data-ref.c re PR tree-optimization/40254 (SPEC2006 403.gcc miscompares) 2009-05-28 09:02:53 +00:00
tree-data-ref.h passes.texi (Tree-SSA passes): Document SLP pass. 2009-05-24 08:44:56 +00:00
tree-dfa.c tree-ssa-operands.c (get_expr_operands): Do not handle INDIRECT_REFs in the handled-component case. 2009-05-29 09:49:42 +00:00
tree-dump.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
tree-dump.h Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
tree-eh.c except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl. 2009-06-15 14:27:18 +00:00
tree-flow-inline.h tree-flow.h (insert_edge_copies_seq): Undeclare. 2009-05-20 12:18:10 +02:00
tree-flow.h tree-flow.h (make_value_handle, [...]): Remove prototypes for removed functions. 2009-06-07 21:44:39 +02:00
tree-if-conv.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-inline.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-inline.h loop-36.c: Reduce amount of iterations to 2 so unrolling still happens. 2009-05-12 14:05:28 +00:00
tree-into-ssa.c tree-into-ssa.c (regs_to_rename, [...]): Remove. 2009-04-27 11:15:53 +00:00
tree-iterator.c tree-iterator.c (expr_only): Remove. 2009-04-18 11:47:22 +00:00
tree-iterator.h tree-iterator.c (tsi_split_statement_list_after, [...]): Remove. 2009-04-16 18:50:07 +00:00
tree-loop-distribution.c omp-low.c (lower_rec_input_clauses): Build correct address expressions. 2009-04-15 16:12:01 +00:00
tree-loop-linear.c re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear) 2009-01-08 17:01:42 +01:00
tree-mudflap.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-mudflap.h
tree-nested.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-nomudflap.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
tree-nrv.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-object-size.c tree-object-size.c (addr_object_size): Fix a pasto in the last change. 2009-06-15 20:48:00 +02:00
tree-optimize.c tree-pass.h (pass_del_ssa, [...]): Remove decls. 2009-04-26 22:09:50 +00:00
tree-outof-ssa.c re PR middle-end/39976 (Big sixtrack degradation on powerpc 32/64 after revision r146817) 2009-05-13 20:14:44 +00:00
tree-parloops.c tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction with additional parameter. 2009-06-16 07:21:12 +00:00
tree-pass.h passes.c: Add bswap pass. 2009-06-14 14:45:32 +00:00
tree-phinodes.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-predcom.c re PR tree-optimization/40421 (Revision 148352 failed 416.gamess in SPEC CPU 2006) 2009-06-13 17:02:17 +00:00
tree-pretty-print.c tree-pretty-print.c (print_call_name): Take the callee, not the call itself. 2009-05-31 18:01:38 -04:00
tree-profile.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-scalar-evolution.c tree-scalar-evolution.c (follow_ssa_edge_expr): Turn into CASE_CONVERT. 2009-05-19 19:14:42 +00:00
tree-scalar-evolution.h tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Extend comments. 2009-03-04 17:50:20 +00:00
tree-sra.c re PR tree-optimization/40432 (verify_stmts failed with -O2: non-register as LHS of unary operation) 2009-06-16 12:16:40 +02:00
tree-ssa-address.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
tree-ssa-alias.c tree-ssa-alias.c (is_escape_site): Remove. 2009-06-16 14:12:44 +00:00
tree-ssa-alias.h tree-ssa-alias.c (is_escape_site): Remove. 2009-06-16 14:12:44 +00:00
tree-ssa-ccp.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-ssa-coalesce.c tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical parameter; update callers. 2009-05-02 11:00:59 +00:00
tree-ssa-copy.c tree-ssa-copy.c (replace_exp_1): Move op for warning-free use with checking disabled. 2009-05-28 12:28:38 +00:00
tree-ssa-copyrename.c re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
tree-ssa-dce.c tree-ssa-operands.h (push_stmt_changes, [...]): Delete. 2009-05-24 11:20:29 +00:00
tree-ssa-dom.c tree-ssa-operands.h (push_stmt_changes, [...]): Delete. 2009-05-24 11:20:29 +00:00
tree-ssa-dse.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-ssa-forwprop.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-ssa-ifcombine.c re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) 2009-04-03 10:24:28 +00:00
tree-ssa-live.c re PR middle-end/40340 (Fortification warning no longer emitted in inlines) 2009-06-05 17:35:13 +02:00
tree-ssa-live.h ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 2009-04-27 12:16:00 +00:00
tree-ssa-loop-ch.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-ssa-loop-im.c tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record TMR_ORIGINAL. 2009-05-21 22:43:19 +00:00
tree-ssa-loop-ivcanon.c pr21829.c: Simplify matching since we now optimize better. 2009-05-11 20:54:56 +00:00
tree-ssa-loop-ivopts.c tree-ssa-loop-ivopts.c (strip_offset_1): New case. 2009-05-29 19:25:04 +00:00
tree-ssa-loop-manip.c gimplify.c (mark_addressable): Export. 2009-03-27 23:00:22 +00:00
tree-ssa-loop-niter.c re PR tree-optimization/40087 (Number of iterations analysis wrong) 2009-05-20 00:33:54 +00:00
tree-ssa-loop-prefetch.c 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com> 2009-06-09 17:00:31 +00:00
tree-ssa-loop-unswitch.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-ssa-loop.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-ssa-math-opts.c tree-ssa-math-opts.c: Remove extra divide. 2009-06-15 09:28:38 +00:00
tree-ssa-operands.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-ssa-operands.h tree-ssa-operands.h (push_stmt_changes, [...]): Delete. 2009-05-24 11:20:29 +00:00
tree-ssa-phiopt.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-ssa-phiprop.c common.opt (-ftree-forwprop, [...]): New options, enabled by default. 2009-05-15 12:26:48 +00:00
tree-ssa-pre.c errors.c (internal_error): Commentary typo fix. 2009-06-07 21:29:43 +02:00
tree-ssa-propagate.c tree-ssa-operands.h (push_stmt_changes, [...]): Delete. 2009-05-24 11:20:29 +00:00
tree-ssa-propagate.h tree-ssa-propagate.c (stmt_makes_single_load): Remove. 2009-04-16 18:48:16 +00:00
tree-ssa-reassoc.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-ssa-sccvn.c re PR tree-optimization/38865 (missing FRE with VIEW_CONVERT_EXPR) 2009-06-12 12:00:39 -07:00
tree-ssa-sccvn.h tree-flow.h (make_value_handle, [...]): Remove prototypes for removed functions. 2009-06-07 21:44:39 +02:00
tree-ssa-sink.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-ssa-structalias.c tree-ssa-alias.c (is_escape_site): Remove. 2009-06-16 14:12:44 +00:00
tree-ssa-ter.c ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 2009-04-27 12:16:00 +00:00
tree-ssa-threadedge.c tree.h (SSA_NAME_VALUE): Remove. 2009-04-28 08:50:19 +00:00
tree-ssa-threadupdate.c
tree-ssa-uncprop.c tree-ssa-uncprop.c (associate_equivalences_with_edges): Use last_basic_block for size of bb->index indexed array. 2009-04-04 18:31:39 +00:00
tree-ssa.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-ssanames.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
tree-stdarg.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-stdarg.h
tree-switch-conversion.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-tailcall.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-vect-data-refs.c misaligned store support 2009-06-05 15:28:50 +00:00
tree-vect-generic.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
tree-vect-loop-manip.c re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop") 2009-06-01 08:15:01 +00:00
tree-vect-loop.c tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction with additional parameter. 2009-06-16 07:21:12 +00:00
tree-vect-patterns.c tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction with additional parameter. 2009-06-16 07:21:12 +00:00
tree-vect-slp.c re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop") 2009-06-01 08:15:01 +00:00
tree-vect-stmts.c tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction with additional parameter. 2009-06-16 07:21:12 +00:00
tree-vectorizer.c tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't mark phis for renaming. 2009-05-31 10:43:38 +00:00
tree-vectorizer.h tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction with additional parameter. 2009-06-16 07:21:12 +00:00
tree-vrp.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree.c re PR middle-end/40439 (Bootstrap broken on FreeBSD in tree.c) 2009-06-15 10:05:29 +00:00
tree.def re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
tree.h cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
treestruct.def re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) 2009-04-03 10:24:28 +00:00
tsystem.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
typeclass.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-c.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-compat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-compat.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde-compat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde-darwin.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde-glibc.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde.c unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning assignments with memcpy calls. 2009-05-19 23:24:30 +10:00
unwind-dw2-fde.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2.c unwind-dw2.c (_Unwind_DebugHook): New function. 2009-05-27 23:12:21 +00:00
unwind-dw2.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-generic.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-pe.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-sjlj.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind.inc Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
value-prof.c re PR c/7543 (no warning for always-false "if (!a & 0x4)" bitwise and on boolean value) 2008-10-24 10:09:06 +00:00
value-prof.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
var-tracking.c combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 2009-04-24 15:31:38 +00:00
varasm.c cgraphunit.c (cgraph_function_versioning,save_inline_function_body): Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 2009-06-15 14:25:50 +00:00
varpool.c [multiple changes] 2009-04-02 15:45:25 +00:00
varray.c alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value instead of an int. 2009-04-30 16:24:31 +00:00
varray.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
vec.c vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I. 2009-06-10 16:21:03 +00:00
vec.h vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I. 2009-06-10 16:21:03 +00:00
vecprim.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
version.c ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
version.h
vmsdbg.h
vmsdbgout.c basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
web.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
xcoff.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
xcoffout.c basic-block.h (struct basic_block_def): Add discriminator field. 2009-06-04 16:12:27 -07:00
xcoffout.h * xcoffout.h (xcoffout_source_line): Update prototype. 2009-06-05 14:03:09 -04:00

README.Portability

Copyright (C) 2000, 2003 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until know has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
initializers with parens around it, e.g.

const char string[] = ("A string");

This is unfortunate since this is what the GNU gettext macro N_
produces.  You need to find a different way to code it.

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


free and realloc
----------------

Some implementations crash upon attempts to free or realloc the null
pointer.  Thus if mem might be null, you need to write

  if (mem)
    free (mem);


Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.