Re: organization of C Extensions in manual

2015-01-18 Thread Sandra Loosemore

On 01/17/2015 04:44 PM, David Wohlferd wrote:

The page for Extensions to the C Language Family
(https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html) is very long (60+
items) and completely unordered.  This makes it hard to find things,
even when you know they are there.  I have taken a first shot at
grouping these.  Hopefully it can at least serve as the basis for
discussion.

These section headings were just the general terms that first occurred
to me.  Feel free to propose more computer-y terminology. And yes, some
of these topics are a stretch to be included in the sections in which I
have placed them.  Still, I believe this is better than what is there now.

Better section names and alternative groupings welcome.


H, looking at your list, I think it is better to leave things that 
are hard to categorize where they are, as top-level sections within the 
chapter, rather than trying to group them arbitrarily with other things 
that are hard to categorize; the latter only makes things things harder 
to find by burying them.



Arrays and Vectors
 Designated Inits: Labeling elements of initializers.


I think this one might better be placed in a section on initializers.


 Pointers to Arrays: Pointers to arrays with qualifiers work as
expected.
 Subscripting: Any array can be subscripted, even if not an lvalue.
 Variable Length: Arrays whose length is computed at run time.
 Vector Extensions: Using vector instructions through built-in
functions.


I'm not sure where this one belongs, but it doesn't seem to go with 
array extensions.  It's not really about builtins, either.



 Zero Length: Zero-length arrays.

Attributes
 Attribute Syntax: Formal syntax for attributes.
 Function Attributes: Declaring that functions have no side effects,
or that they can never return.
 Inline: Defining inline functions (as fast as macros).


Doesn't seem to belong here.


 Label Attributes: Specifying attributes on labels.
 Thread-Local: Per-thread variables.


Or this one


 Type Attributes: Specifying attributes of types.
 Variable Attributes: Specifying attributes of variables.
 Volatiles: What constitutes an access to a volatile object.


Or this one.



BuiltIns
 __atomic Builtins: Atomic built-in functions with memory model.
 __sync Builtins: Legacy built-in functions for atomic memory access.
 Cilk Plus Builtins: Built-in functions for the Cilk Plus language
extension.
 Integer Overflow Builtins: Built-in functions to perform
arithmetics and arithmetic overflow checking.
 Object Size Checking: Built-in functions for limited buffer
overflow checking.
 Other Builtins: Other built-in functions.
 Pointer Bounds Checker builtins: Built-in functions for Pointer
Bounds Checker.
 Target Builtins: Built-in functions specific to particular targets.
 x86 specific memory model extensions for transactional memory: x86
memory models.


This looks OK.


Computed values
 Alignment: Inquiring about the alignment of a type or variable.
 Conditionals: Omitting the middle operand of a ‘?:’ expression.
 Initializers: Non-constant initializers.
 Offsetof: Special syntax for implementing offsetof.
 Pointer Arith: Arithmetic on void-pointers and function pointers.
 Return Address: Getting the return or frame address of a function.
 Statement Exprs: Putting statements and declarations inside
expressions.
 Target Format Checks: Format checks specific to particular targets.
 Typeof: typeof: referring to the type of an expression.
 Variadic Macros: Macros with a variable number of arguments.

Constant Values
 Binary constants: Binary constants using the ‘0b’ prefix.
 Character Escapes: ‘\e’ stands for the character .
 Compound Literals: Compound literals give structures, unions or
arrays as values.
 Escaped Newlines: Slightly looser rules for escaped newlines.
 Hex Floats: Hexadecimal floating-point constants.
 Labels as Values: Getting pointers to labels, and computed gotos.


I don't really like this division.  To me, it would be more useful to 
have a section on purely syntactic extensions (the binary constants, 
character escapes, dollar signs in identifiers), and one on expression 
values.  I don't think the variadic macros section belongs in either of 
those groups and should be left separate for now.



Data types
 __int128: 128-bit integers---__int128.
 Complex: Data types for complex numbers.
 Decimal Float: Decimal Floating Types.
 Empty Structures: Structures with no members.
 Fixed-Point: Fixed-Point Types.
 Floating Types: Additional Floating Types.
 Half-Precision: Half-Precision Floating Point.
 Long Long: Double-word integers---long long int.


This is good.



Naming
 Alternate Keywords: __const__, __asm__, etc., for header files.
 Cast to Union: Casting to union type from any member of the union.
 Dollar Signs: Dollar s

gcc-5-20150118 is now available

2015-01-18 Thread gccadmin
Snapshot gcc-5-20150118 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/5-20150118/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 5 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 219827

You'll find:

 gcc-5-20150118.tar.bz2   Complete GCC

  MD5=f5d70285ccd40d974b3483224cb28f46
  SHA1=fc55f0296f7977d7a86a539c2584b7c316583a15

Diffs from 5-20150111 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-5
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.