summaryrefslogtreecommitdiff
path: root/docs/tools/clang.pod
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tools/clang.pod')
-rw-r--r--docs/tools/clang.pod23
1 files changed, 19 insertions, 4 deletions
diff --git a/docs/tools/clang.pod b/docs/tools/clang.pod
index a58986c3a6b94..f7d2eaf683cba 100644
--- a/docs/tools/clang.pod
+++ b/docs/tools/clang.pod
@@ -237,7 +237,7 @@ Specify the architecture to build for.
=item B<-mmacosx-version-min>=I<version>
-When building for Mac OS/X, specify the minimum version supported by your
+When building for Mac OS X, specify the minimum version supported by your
application.
=item B<-miphoneos-version-min>
@@ -310,8 +310,23 @@ Currently equivalent to B<-O3>
=item B<-g>
Generate debug information. Note that Clang debug information works best at
-B<-O0>. At higher optimization levels, only line number information is
-currently available.
+B<-O0>.
+
+=item B<-fstandalone-debug> B<-fno-standalone-debug>
+
+Clang supports a number of optimizations to reduce the size of debug
+information in the binary. They work based on the assumption that the
+debug type information can be spread out over multiple compilation
+units. For instance, Clang will not emit type definitions for types
+that are not needed by a module and could be replaced with a forward
+declaration. Further, Clang will only emit type info for a dynamic
+C++ class in the module that contains the vtable for the class.
+
+The B<-fstandalone-debug> option turns off these optimizations. This
+is useful when working with 3rd-party libraries that don't come with
+debug information. This is the default on Darwin. Note that Clang
+will never emit type information for types that are not referenced at
+all by the program.
=item B<-fexceptions>
@@ -366,7 +381,7 @@ to the linker depending on the stage selection options).
=item B<-###>
-Print the commands to run for this compilation.
+Print (but do not run) the commands to run for this compilation.
=item B<--help>