aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2009-05-19Template instantiation for cast expressions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Patch finishes off application of printf attribute on blocks.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72111 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Create CXXConstructExpr calls for arguments passed to functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72102 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19When assigning from an rvalue to a const reference, the implicit cast from T ↵Anders Carlsson
-> const T is not an lvalue cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72082 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Template instantiation for call expressions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72081 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19Template instantiation for array subscript expressions. This was farDouglas Gregor
easier than expected because of the limitation that subscript operators must be member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18BlockDecl node must be complete before block attributesFariborz Jahanian
can be processed. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72066 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Template instantiation for imaginary literals, because they were next in Expr.hDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Fix sorting of using directives, from Jay FoadDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Deal with an icky corner case where we were complaining that a catchDouglas Gregor
statement was using an rvalue reference during the template definition. However, template instantiations based on an lvalue reference type are well-formed, so we delay checking of these property until template instantiation time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18more printf attribute on block declaration andFariborz Jahanian
checking when block is envoked. In progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Template instantiation for C++ try/catch statements.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Include StmtNodes.def to declare Visit methods for all of the knownDouglas Gregor
kinds of statements (in the instantiation logic). No functionality change, but now we'll get linker errors if we add a statement but forget to introduce its instantiation logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Simplify struct/class tag mismatch warning, per Sebastian's suggestionDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72027 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Minor tweak to support format attribute on blocks. No change in functionality.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72020 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18When instantiating the definition of a member function of a classDouglas Gregor
template, introduce that member function into the template instantiation stack. Also, add diagnostics showing the member function within the instantiation stack and clean up the qualified-name printing so that we get something like: note: in instantiation of member function 'Switch1<int, 2, 2>::f' requested here in the template instantiation backtrace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Make ActOnWhileStmt take a FullExprArg for the condition expr.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71990 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Make ActOnExprStmt take a FullExprArg.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Fix instantiate-function-1.cpp.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71988 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Fix DISABLE_SMART_POINTERS build.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Implement Sema::ActOnFinishFullExpr and create a CXXExprWithTemporaries node ↵Anders Carlsson
if necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71983 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Add the FullExprArg wrapper and use it for if statement conditions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71982 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Add FIXME about not using MemberExpr nodes when the base type is a dependent ↵Anders Carlsson
type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-17Rewrite PureVirtualMethodCollector to use the overridden methods. Fixes ↵Anders Carlsson
<rdar://problem/6854087> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Add OldMD to the list of methods NewMD overridesAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Refactor address-of-void extension a bit so that it's more obviouslyEli Friedman
correct. No functionality change, as far as I know. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Fix another case where the extern-ness of extern "C" wasn't being captured. Anders Carlsson
This makes me think that we should make hasExternalStorage perform this check... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Don't return member pointer types for static member functions. Fixes 6879261.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Improve checking of member expressions where the base type is a dependent type.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71956 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Implement instantiation of a few boring, simple expressions. I don't think ↵Sebastian Redl
these are testable yet, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71953 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Avoid calling mergeTypes in C++. I think these are the correct C++ Eli Friedman
alternatives, but please correct me if I'm wrong. I eventually plan to assert in mergeTypes that we aren't in C++ mode because composite types are fundamentally not a part of C++. The remaining callers for code in the regression tests are Sema::WarnConflictingTypedMethods and CodeGenFunction::EmitFunctionProlog; I'm not quite sure what the correct approach is for those callers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Add stricter checking for va_arg.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71942 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16PR2044: reject declarations of functions returning variably modified Eli Friedman
types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16PR3009: Get rid of bogus warning for scalar compound literals.Eli Friedman
This patch isn't quite ideal in that it eliminates the warning for constructs like "int a = {1};", where the braces are in fact redundant. However, that would have required a bunch of refactoring, and it's much less likely to cause confusion compared to redundant nested braces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Reflow some comments.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71936 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Implement a FIXME, we now pass in the locations of the braces for enums.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71930 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Remove useless wrapper.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Template instantiation for IndirectGotoStmt. Now my life is complete.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Template instantiation for switch statementsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Removed superfluous code.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Early support for __format__attribute on blocks.Fariborz Jahanian
Work in progress... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Basic support for member exprs where the base expr type is dependent.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Template instantiation for break and continue statements.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Template instantiation for "for" loopsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Template instantiation for do-while statements.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Template instantiation for WhileStmt and CXXConditionDeclExpr.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Make sure that we use the canonical type for the names of instantiatedDouglas Gregor
constructors and destructors. This is a requirement of DeclarationNameTable::getCXXSpecialName that we weren't assert()'ing, so it should have been caught much earlier :( Big thanks to Anders for the test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15improved on diagnosing misplacement of sentinel attributes.Fariborz Jahanian
No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Allow instantiation of NULL expressions and statementsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15This patch finishes off the sentinel attribute handling forFariborz Jahanian
blocks and function pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71888 91177308-0d34-0410-b5e6-96231b3b80d8