aboutsummaryrefslogtreecommitdiff
path: root/tcc-doc.texi
diff options
context:
space:
mode:
authorbellard <bellard>2002-11-03 00:44:38 +0000
committerbellard <bellard>2002-11-03 00:44:38 +0000
commit6cd2d5d2c84421eb188dce91b49391c8cc4dd479 (patch)
treea53f12a34b464cbc27d17a4d121f1db23883456c /tcc-doc.texi
parent923627f030ae1cabd7245b186dc5ee41181fc951 (diff)
downloadtinycc-6cd2d5d2c84421eb188dce91b49391c8cc4dd479.tar.gz
tinycc-6cd2d5d2c84421eb188dce91b49391c8cc4dd479.tar.bz2
update
Diffstat (limited to 'tcc-doc.texi')
-rw-r--r--tcc-doc.texi58
1 files changed, 35 insertions, 23 deletions
diff --git a/tcc-doc.texi b/tcc-doc.texi
index 9c300f1..d5ddb40 100644
--- a/tcc-doc.texi
+++ b/tcc-doc.texi
@@ -37,7 +37,7 @@ generation (@xref{libtcc}).
@example
usage: tcc [-c] [-o outfile] [-Bdir] [-bench] [-Idir] [-Dsym[=val]] [-Usym]
- [-g] [-b] [-Ldir] [-llib] [-shared] [-static]
+ [-g] [-b] [-bt N] [-Ldir] [-llib] [-shared] [-static]
[--] infile1 [infile2... --] [infile_args...]
@end example
@@ -131,21 +131,6 @@ also be defined: @code{'-DF(a)=a+1'}
Undefine preprocessor symbol 'sym'.
@end table
-C compiler options:
-
-@table @samp
-@item -g
-Generate run time debug information so that you get clear run time
-error messages: @code{ test.c:68: in function 'test5()': dereferencing
-invalid pointer} instead of the laconic @code{Segmentation
-fault}.
-
-@item -b
-Generate additionnal support code to check
-memory allocations and array/pointer bounds. '-g' is implied. Note
-that the generated code is slower and bigger in this case.
-@end table
-
Linker options:
@table @samp
@@ -172,19 +157,36 @@ also be given).
@end table
+Debugger options:
+
+@table @samp
+@item -g
+Generate run time debug information so that you get clear run time
+error messages: @code{ test.c:68: in function 'test5()': dereferencing
+invalid pointer} instead of the laconic @code{Segmentation
+fault}.
+
+@item -b
+Generate additionnal support code to check
+memory allocations and array/pointer bounds. @samp{-g} is implied. Note
+that the generated code is slower and bigger in this case.
+
+@item -bt N
+Display N callers in stack traces. This is useful with @samp{-g} or
+@samp{-b}.
+
+@end table
+
+Note: GCC options @samp{-Ox}, @samp{-Wx}, @samp{-fx} and @samp{-mx} are
+ignored.
+
@chapter C language support
@section ANSI C
TCC implements all the ANSI C standard, including structure bit fields
and floating point numbers (@code{long double}, @code{double}, and
-@code{float} fully supported). The following limitations are known:
-
-@itemize
- @item The preprocessor tokens are the same as C. It means that in some
- rare cases, preprocessed numbers are not handled exactly as in ANSI
- C. This approach has the advantage of being simpler and FAST!
-@end itemize
+@code{float} fully supported).
@section ISOC99 extensions
@@ -320,6 +322,16 @@ generate function @code{'my_add'} in section @code{.mycodesection}.
(so it has not exactly the same semantics as string literal GNUC
where it is a string literal).
+@item The @code{__alignof__} keyword can be used as @code{sizeof}
+to get the alignment of a type or an expression.
+
+@item The @code{typeof(x)} returns the type of @code{x}.
+@code{x} is an expression or a type.
+
+@item Computed gotos: @code{&&label} returns a pointer of type
+@code{void *} on the goto label @code{label}. @code{goto *expr} can be
+used to jump on the pointer resulting from @code{expr}.
+
@end itemize
@section TinyCC extensions