aboutsummaryrefslogtreecommitdiff
path: root/lib/AST
AgeCommit message (Collapse)Author
2012-08-15[ms-inline asm] Add the left brace source location and improve the prettyChad Rosier
printer. Patch by Enea Zaffanella <zaffanella@cs.unipr.it>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161958 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-15Use the right alignment when allocating NestedNameSpecifier objects.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161920 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-15Fix overallocation and underalignment of ASTTemplateArgumentListInfo objects.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161918 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-14[ms-inline asm] Remove the last bits of LineEnds.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161904 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-14Attaching comments to redeclarations: fix wrong assumptionsDmitri Gribenko
The reason for the recent fallout for "attaching comments to any redeclaration" change are two false assumptions: (1) a RawComment is attached to a single decl (not true for 'typedef struct X *Y' where we want the comment to be attached to both X and Y); (2) the whole redeclaration chain has only a single comment (obviously false, the user can put a separate comment for each redeclaration). To fix (1) I revert the part of the recent change where a 'Decl*' member was introduced to RawComment. Now ASTContext has a separate DenseMap for mapping 'Decl*' to 'FullComment*'. To fix (2) I just removed the test with this assumption. We might not parse every comment in redecl chain if we already parsed at least one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161878 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-14Do NOT use inline functions with LLVM_ATTRIBUTE_USED.Benjamin Kramer
The function will be emitted into every single TU including the header! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-13PR13570: When an unresolved overloaded call appeared in a dependent context, weRichard Smith
forgot to set it as being instantiation-dependent as well as being type- and value-dependent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-13Factor out computation of whether a typeid's expression is potentiallyRichard Smith
evaluated into a CXXTypeid member function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161779 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-13When looking for the comment associated with a declaration, adjust theDouglas Gregor
'templated' declaration for a function or class template to refer to the function or class template itself, to which the documentation will be attached. Fixes PR13593. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-11Attaching comments to declarations: find comment attached to any redeclarationDmitri Gribenko
Not only look for the comment near the declaration itself, but also walk the redeclaration chain: the previous declaration might have had a documentation comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161722 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10[ms-inline asm] Avoid extra allocations by making this an array of StringRefs.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161703 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10[ms-inline asm] Fix a memory leak introduced in r161686.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161698 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10[ms-inline asm] Add clobbers to AST representation.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161686 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10Provide isConst/Volatile on CXXMethodDecl.David Blaikie
This also provides isConst/Volatile/Restrict on FunctionTypes to coalesce the implementation with other callers (& update those other callers). Patch contributed by Sam Panzer (panzer@google.com). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161647 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-09[ms-inline asm] Use StringRef here, per Jordan's suggestion.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161619 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-09Comment to HTML and XML conversion: ignore commands that contain a declarationDmitri Gribenko
as their argument. For example, \fn, \function, \typedef, \method, \class etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161601 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-09Add new file CommentCommandTraits.cpp to CMakeLists.txt.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-09Comment parsing: extract TableGen'able pieces into new CommandTraits class.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161548 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08[ms-inline asm] Refactor the logic to generate the AsmString into Sema. NoChad Rosier
functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161518 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Constify CXXRecordDecl::isVirtuallyDerivedFrom.Jordan Rose
No functionality change. A couple ugly const_casts because the ancestor search code is used for other purposes as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161509 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Add the IsSimple/IsVolatile parameters to the MSAsmStmt constructor.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161503 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Implement warning for integral null pointer constants other than the literal 0.David Blaikie
This is effectively a warning for code that violates core issue 903 & thus will become standard error in the future, hopefully. It catches strange null pointers such as: '\0', 1 - 1, const int null = 0; etc... There's currently a flaw in this warning (& the warning for 'false' as a null pointer literal as well) where it doesn't trigger on comparisons (ptr == '\0' for example). Fix to come in a future patch. Also, due to this only being a warning, not an error, it triggers quite frequently on gtest code which tests expressions for null-pointer-ness in a SFINAE context (so it wouldn't be a problem if this was an error as in an actual implementation of core issue 903). To workaround this for now, the diagnostic does not fire in unevaluated contexts. Review by Sean Silva and Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161501 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Fix a -ast-dump crash.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161472 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Whitespace.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161455 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Comment AST: DeclInfo: add a special kind for enums.Dmitri Gribenko
Comment XML: add a root node kind for enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161442 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Comment AST: treat enumerators as "variables" in DeclInfo.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Update documentation of HasSideEffects to match its callers' expectations, andRichard Smith
update implementation to match. An elidable, non-trivial constructor call is a side-effect under this definition, but wasn't under the old one, because we are not required to evaluate it even though it may have an effect. Also rationalize checking for volatile reads: just look for lvalue-to-rvalue conversions on volatile glvalues, and ignore whether a DeclRefExpr etc is for a volatile variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161393 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Teach Expr::HasSideEffects about all the Expr types, and fix a bug where itRichard Smith
was mistakenly classifying dynamic_casts which might throw as having no side effects. Switch it from a visitor to a switch, so it is kept up-to-date as future Expr nodes are added. Move it from ExprConstant.cpp to Expr.cpp, since it's not really related to constant expression evaluation. Since we use HasSideEffect to determine whether to emit an unused global with internal linkage, this has the effect of suppressing emission of globals in some cases. I've left many of the Objective-C cases conservatively assuming that the expression has side-effects. I'll leave it to someone with better knowledge of Objective-C than mine to improve them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161388 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07[ms-inline asm] Stmt destructors are never called, so allocate the AsmToks usingChad Rosier
the ASTContext BumpPtr. Also use the preferred llvm::ArrayRef interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161373 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parsing: fix crash on \tparam followed immediately by another blockDmitri Gribenko
command, for example: \tparam\brief. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161361 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment AST: DeclInfo: collapse a bunch of boolean flags into an enum.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Improve arrow locations for PseudoObjectExprs.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161350 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[ms-inline asm] Pass Tokens to Sema and store them in the AST. No functionalChad Rosier
change intended. No test case as there's no real way to test at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parser and sema: remove useless return valuesDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161331 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: warn on duplicate \brief and \return commands.Dmitri Gribenko
Doxygen manual claims that multiple \brief or \returns commands will be merged together, but actual behavior is different (second \brief command becomes a part of a discussion, second \returns becomes a "Returns: blah" paragraph on its own). Anyway, it seems to be a bad idea to use multiple \brief or \returns commands in a single command. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161325 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: \return in void function: specialize diagnostic text forDmitri Gribenko
ObjC methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04objective-C string literal has no side-effect,Fariborz Jahanian
resulting in issuance of unused static variable warning now. // rdar://10777111 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Enhance getImplicitObjectArgument to look through ->*.Jordan Rose
This only applies in the case where ->* is not overloaded, since it specifically looks for BinaryOperator and not CXXOperatorCallExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161275 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Comment diagnostics: warn if \returns is used in a non-function comment or ifDmitri Gribenko
the function returns void. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161261 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Flesh out test for defaulted key functions a bit more.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161243 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Fix failed to generate vtables in certain cases.Benjamin Kramer
By C++ standard, the vtable should be generated if the first non-inline virtual function is defined in the TU. Current version of clang doesn't generate vtable if the first virtual function is defaulted, because the key function is regarded as the defaulted function. Patch by Li Kan! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161236 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Comment AST: convert a huge if -- else if statement on Decl's type into aDmitri Gribenko
switch. Thanks Sean Silva for suggestion! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161225 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02Comments AST: refactor DeclInfo to use an enum for decl kind instead ofDmitri Gribenko
separate flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161217 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02Comments: handle template paramter documentation in alias-declarationDmitri Gribenko
templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02Attaching comments to declarations: handle using-declaration.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161211 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02ASTContext.h: replace include by a forward declaration.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161186 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-01Initialize flag in DeclInfo.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161141 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-01Comment AST: add DeclInfo to store information about the declaration. Sema wasDmitri Gribenko
already extracting most of this, but discarding at the end of semantic analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161140 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-31Comment parsing: add support for \tparam command on all levels.Dmitri Gribenko
The only caveat is renumbering CXCommentKind enum for aesthetic reasons -- this breaks libclang binary compatibility, but should not be a problem since API is so new. This also fixes PR13372 as a side-effect. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161087 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-31Consider the visibility of template template arguments. GCC doesn't, but it alsoRafael Espindola
fails to consider the linkage, which we were already considering. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161070 91177308-0d34-0410-b5e6-96231b3b80d8