freebsd-dev/contrib/gcc/ChangeLog.apple
Pedro F. Giffuni 2d278bb89e gcc: Add support for label attributes and "unavailable" attribute.
Apple GCC has extensions to support for both label attributes and
an "unavailable" attribute. These are critical for objc but are
also useful in regular C/C++.

Apparently at least the label attributes might have found their way to
upstream GCC but the code doesn't seem available on the GPLv2 tree so
we are taking the code directly from Apple. To make this clearer we
are preserving the annoying "APPLE LOCAL" tags and the ChangeLogs
when they are available.

Obtained from:	Apple GCC 4.2 - 5531
MFC after:	3 weeks
2013-12-28 20:30:31 +00:00

52 lines
2.0 KiB
Plaintext

006-02-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4445586
* c-common.def (DO_STMT): Takes an extra argument.
/* APPLE LOCAL merge marger */
/* Stuff under is in fsf mainline, but not in the 4.2 branch */
2007-08-02 Geoffrey Keating <geoffk@apple.com>
Radar 3274130, 5295549
* c-parser.c (c_parser_while_statement): Handle attributes.
(c_parser_do_statement): Handle attributes.
(c_parser_for_statement): Handle attributes.
* c-common.c (handle_unused_attribute): Warn if a statement
is marked as unused.
* c-tree.h (c_finish_loop): Add extra parameter.
* c-typeck.c (c_finish_loop): Handle attributes.
* doc/extend.texi (Attribute Syntax): Document statement attributes.
(Label Attributes): Explain how they apply to statements.
* tree-cfg.c (cleanup_dead_labels): Preserve labels with
user-specified alignment or attributes.
* stmt.c (expand_label): Update and correct documentation.
* c-common.c (handle_aligned_attribute): Handle LABEL_DECL.
* rtl.def (CODE_LABEL): Add 8th operand.
* rtl.h (LABEL_ALIGN_LOG): New.
(LABEL_MAX_SKIP): New.
(SET_LABEL_ALIGN): New.
* emit-rtl.c (gen_label_rtx): Adjust.
* print-rtl.c (print_rtx): Print LABEL_ALIGN_LOG.
* stmt.c (label_rtx): Set CODE_LABEL's alignment from DECL_ALIGN.
(expand_label): Update documentation.
* final.c (struct label_alignment): Delete.
(label_align): Delete.
(min_labelno): Delete.
(max_labelno): Delete.
(LABEL_TO_ALIGNMENT): Delete.
(LABEL_TO_MAX_SKIP): Delete.
(label_to_alignment): Adjust for LABEL_ALIGN_LOG.
(align_fuzz): Likewise.
(compute_alignments): Likewise.
(shorten_branches): Remove code to set up label_align.
Adjust for LABEL_ALIGN_LOG.
(final_scan_insn): Adjust for LABEL_ALIGN_LOG.
* doc/extend.texi (C Extensions): Add 'Label Attributes' to menu.
(Attribute Syntax): Move label content to Label Attributes.
(Function Attributes): Mention label attributes.
(Variable Attributes): Mention label attributes.
(Type Attributes): Mention label attributes.
(Label Attributes): New.