Commit Graph

32 Commits

Author SHA1 Message Date
Chris Lattner 04397358ec Implement the final (hopefully) wrinkle to i-c-e + builtin_constant_p
processing: it allows arbitrary foldable constants as the operand of ?: when
builtin_constant_p is the condition.

llvm-svn: 60954
2008-12-12 18:00:51 +00:00
Chris Lattner 85b25bc344 implement rdar://6091492 - ?: with __builtin_constant_p as the operand is an i-c-e.
llvm-svn: 60934
2008-12-12 06:55:44 +00:00
Chris Lattner e4b95698df Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector 
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.

llvm-svn: 59933
2008-11-24 03:33:13 +00:00
Chris Lattner d125393d24 inserting a qualtype adds quotes implicitly
llvm-svn: 59915
2008-11-23 20:27:13 +00:00
Chris Lattner 4e2e9f1a5d other minor edits.
llvm-svn: 59906
2008-11-23 08:32:53 +00:00
Chris Lattner c788a8bdec minor cleanups.
llvm-svn: 59905
2008-11-23 08:16:56 +00:00
Chris Lattner 1fea89ccb1 finish up the diagnostics documentation. We don't
support QualType and DeclarationName yet, so some of it
is lies, however, this will be fixed shortly.

llvm-svn: 59896
2008-11-23 00:42:53 +00:00
Chris Lattner 80bec16f14 more updates
llvm-svn: 59895
2008-11-23 00:28:33 +00:00
Chris Lattner cc6147cd3b finish documentation of %select.
llvm-svn: 59892
2008-11-22 23:50:47 +00:00
Sebastian Redl 6cae80da20 Documentation for the plural modifier.
llvm-svn: 59885
2008-11-22 22:16:45 +00:00
Chris Lattner e72a8a3048 start documenting Diagnostics. Sebastian, I'd appreciate it
if you can fill in the section for %plural.

llvm-svn: 59883
2008-11-22 21:41:31 +00:00
Douglas Gregor 163c58502a Extend DeclarationName to support C++ overloaded operators, e.g.,
operator+, directly, using the same mechanism as all other special
names.

Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.

Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.

Extended Declarator to store overloaded operator names. 
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator. 

Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.

llvm-svn: 59526
2008-11-18 14:39:36 +00:00
Douglas Gregor ae2fbad373 Updated IdentifierResolver to deal with DeclarationNames. The names of
C++ constructors, destructors, and conversion functions now have a
FETokenInfo field that IdentifierResolver can access, so that these
special names are handled just like ordinary identifiers. A few other
Sema routines now use DeclarationNames instead of IdentifierInfo*'s.

To validate this design, this code also implements parsing and
semantic analysis for id-expressions that name conversion functions,
e.g.,

  return operator bool();

The new parser action ActOnConversionFunctionExpr takes the result of
parsing "operator type-id" and turning it into an expression, using
the IdentifierResolver with the DeclarationName of the conversion
function. ActOnDeclarator pushes those conversion function names into
scope so that the IdentifierResolver can find them, of course.

llvm-svn: 59462
2008-11-17 20:34:05 +00:00
Douglas Gregor 77324f3854 Introduction the DeclarationName class, as a single, general method of
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.

llvm-svn: 59441
2008-11-17 14:58:09 +00:00
Chris Lattner 807e8c5d63 Describe how constant folding and i-c-e diagnosing should work.
Unfortunately, we're not here yet, but eventually Expr::isConstantExpr
and friends should go away.

llvm-svn: 59427
2008-11-16 21:48:07 +00:00
Mike Stump b9d50b23a8 Unbreak clang install.
llvm-svn: 54663
2008-08-12 00:32:59 +00:00
Chris Lattner 613fdff902 clean up the footer a bit more.
llvm-svn: 54113
2008-07-26 23:54:49 +00:00
Chris Lattner e3bbfffa5b remove SSIs.
llvm-svn: 54112
2008-07-26 23:52:26 +00:00
Chris Lattner 9213f5d947 Add the right path to the lines image.
llvm-svn: 54111
2008-07-26 23:51:08 +00:00
Daniel Dunbar 086fe1ac79 Add doxygen support
- Stolen from LLVM with minor modifications

llvm-svn: 54103
2008-07-26 21:32:24 +00:00
Ted Kremenek d2c8970a9a Use same CSS as the rest of the clang website.
llvm-svn: 52208
2008-06-11 06:19:49 +00:00
Chris Lattner d5917cef95 update documentation
llvm-svn: 48074
2008-03-09 02:27:26 +00:00
Ted Kremenek efc244722f Minor grammar fix.
llvm-svn: 43154
2007-10-18 22:50:52 +00:00
Ted Kremenek a1cf09f51d Commented out header with no section body. Will write this eventually.
llvm-svn: 42844
2007-10-10 23:22:00 +00:00
Ted Kremenek 035b0cd34a Added some documentation on clang CFGs. It is very rough.
llvm-svn: 42843
2007-10-10 23:01:43 +00:00
Bill Wendling bc03521fc9 Fix spacing issues.
llvm-svn: 42676
2007-10-06 01:56:01 +00:00
Chris Lattner ac81722ff6 Fix html problem, patch by Justin Handville
llvm-svn: 42011
2007-09-16 19:25:23 +00:00
Chris Lattner 5070523a07 Owen pointed out that this made no sense :)
llvm-svn: 40644
2007-07-31 18:54:50 +00:00
Chris Lattner 578611857d update name
llvm-svn: 40637
2007-07-31 16:50:51 +00:00
Chris Lattner 49820d63dc Oops, I committed the wrong file before. This expands the description of
type.

llvm-svn: 40620
2007-07-31 06:37:39 +00:00
Chris Lattner c6684bc0c5 Add a start at a clang internals manual, documenting some
of the more subtle and interesting classes.

llvm-svn: 40615
2007-07-31 05:42:17 +00:00
Chris Lattner 0443a76b11 add documentation skeleton
llvm-svn: 40471
2007-07-24 18:03:18 +00:00