[cfe-commits] r171656 - in /cfe/trunk/docs: FAQ.rst index.rst

Jordan Rose jordan_rose at apple.com
Mon Jan 7 09:18:34 PST 2013


This is good to have. I think we should explain the word "frontend" as well; a user of clang who doesn't know how it interacts with LLVM wouldn't understand that term.

(Actually, given that all of LLVM is statically linked into the clang binary, clang -cc1 is not just an LLVM frontend from the user perspective...)

Jordan


On Jan 6, 2013, at 5:38 , Dmitri Gribenko <gribozavr at gmail.com> wrote:

> Author: gribozavr
> Date: Sun Jan  6 07:38:34 2013
> New Revision: 171656
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=171656&view=rev
> Log:
> Clang docs: add some information about the difference between 'clang' and 'clang -cc1'
> 
> This is coming up again and again on the mailing list and IRC.
> 
> Added:
>    cfe/trunk/docs/FAQ.rst
> Modified:
>    cfe/trunk/docs/index.rst
> 
> Added: cfe/trunk/docs/FAQ.rst
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/FAQ.rst?rev=171656&view=auto
> ==============================================================================
> --- cfe/trunk/docs/FAQ.rst (added)
> +++ cfe/trunk/docs/FAQ.rst Sun Jan  6 07:38:34 2013
> @@ -0,0 +1,52 @@
> +================================
> +Frequently Asked Questions (FAQ)
> +================================
> +
> +.. contents::
> +   :local:
> +
> +Driver
> +======
> +
> +I run ``clang -cc1 ...`` and get weird errors about missing headers
> +-------------------------------------------------------------------
> +
> +Given this source file:
> +
> +.. code-block:: c
> +
> +  #include <stdio.h>
> +
> +  int main() {
> +    printf("Hello world\n");
> +  }
> +
> +
> +If you run:
> +
> +.. code-block:: console
> +
> +  $ clang -cc1 hello.c
> +  hello.c:1:10: fatal error: 'stdio.h' file not found
> +  #include <stdio.h>
> +           ^
> +  1 error generated.
> +
> +``clang -cc1`` is the frontend, ``clang`` is the :doc:`driver
> +<DriverInternals>`.  The driver invokes the frontend with options appropriate
> +for your system.  To see these options, run:
> +
> +.. code-block:: console
> +
> +  $ clang -### -c hello.c
> +
> +Some clang command line options are driver-only options, some are frontend-only
> +options.  Frontend-only options are intended to be used only by developers.
> +Users should not run ``clang -cc1`` directly.
> +
> +If you want to use a frontend-only option ("a ``-cc1`` option"), for example
> +``-ast-dump``, then you need to take the ``clang -cc1`` line generated by the
> +driver and add the option you need.  Alternatively, you can run
> +``clang -Xclang <option> ...`` to force the driver pass ``<option>`` to
> +``clang -cc1``.
> +
> 
> Modified: cfe/trunk/docs/index.rst
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/index.rst?rev=171656&r1=171655&r2=171656&view=diff
> ==============================================================================
> --- cfe/trunk/docs/index.rst (original)
> +++ cfe/trunk/docs/index.rst Sun Jan  6 07:38:34 2013
> @@ -21,6 +21,7 @@
>    AddressSanitizer
>    ThreadSanitizer
>    MemorySanitizer
> +   FAQ
> 
> Using Clang as a Library
> ========================
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130107/80055c0e/attachment.html>


More information about the cfe-commits mailing list