I've checked in this patch to fix some formatting problems that caused
overfull hbox (that is, lines that overflow the margin) warnings when
building the GCC user manual.
This isn't exhaustive -- in particular, I see that the long CPU names in
the AArch64 and ARM options sections are causing a pile of both
underfull and overfull hbox warnings. I think the solution here is to
format these lists in a more tabular way instead of as flowed text
(perhaps like @gccoptlist formatting in the "Option Summary" section)
and do it that way uniformly for all targets that have such lists.
That's a bigger project which I'll throw back into the pile for now.
-Sandra
2017-12-17 Sandra Loosemore <san...@codesourcery.com>
gcc/
* doc/extend.texi (x86 Function Attributes): Reformat nocf_check
example to avoid overfull hbox.
* doc/invoke.texi (Option Summary): Add missing @gol.
(C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
overfull hbox.
Index: gcc/doc/extend.texi
===================================================================
--- gcc/doc/extend.texi (revision 255772)
+++ gcc/doc/extend.texi (working copy)
@@ -5765,21 +5765,27 @@ int foo (void) __attribute__(nocf_check)
void (*foo1)(void) __attribute__(nocf_check);
void (*foo2)(void);
+/* foo's address is assumed to be valid. */
int
-foo (void) /* The function's address is assumed to be valid. */
+foo (void)
- /* This call site is not checked for control-flow validity. */
+ /* This call site is not checked for control-flow
+ validity. */
(*foo1)();
- foo1 = foo2; /* A warning is printed about attribute mismatch. */
- /* This call site is still not checked for control-flow validity. */
+ /* A warning is issued about attribute mismatch. */
+ foo1 = foo2;
+
+ /* This call site is still not checked. */
(*foo1)();
- /* This call site is checked for control-flow validity. */
+ /* This call site is checked. */
(*foo2)();
- foo2 = foo1; /* A warning is printed about attribute mismatch. */
- /* This call site is still checked for control-flow validity. */
+ /* A warning is issued about attribute mismatch. */
+ foo2 = foo1;
+
+ /* This call site is still checked. */
(*foo2)();
return 0;
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi (revision 255773)
+++ gcc/doc/invoke.texi (working copy)
@@ -549,7 +549,7 @@ Objective-C and Objective-C++ Dialects}.
-fdisable-tree-@var{pass-name}=@var{range-list} @gol
-fdump-noaddr -fdump-unnumbered -fdump-unnumbered-links @gol
-fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol
--fdump-final-insns@r{[}=@var{file}@r{]}
+-fdump-final-insns@r{[}=@var{file}@r{]} @gol
-fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline @gol
-fdump-lang-all @gol
-fdump-lang-@var{switch} @gol
@@ -2935,12 +2935,18 @@ Warn if the C++17 feature making @code{n
type changes the mangled name of a symbol relative to C++14. Enabled
by @option{-Wabi} and @option{-Wc++17-compat}.
+As an example:
+
@smallexample
template <class T> void f(T t) @{ t(); @};
void g() noexcept;
-void h() @{ f(g); @} // in C++14 calls f<void(*)()>, in C++17 calls f<void(*)()noexcept>
+void h() @{ f(g); @}
@end smallexample
+@noindent
+In C++14, @code{f} calls calls @code{f<void(*)()>}, but in
+C++17 it calls @code{f<void(*)()noexcept>}.
+
@item -Wclass-memaccess @r{(C++ and Objective-C++ only)}
@opindex Wclass-memaccess
Warn when the destination of a call to a raw memory function such as