summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
Commit message (Collapse)AuthorAgeFilesLines
* Property declared in continuation class can only be used toFariborz Jahanian2009-11-021-12/+6
| | | | | | | change a readonly property declared in the class (and its inherited protocols) to writable property. (Fixes radar 7350645). llvm-svn: 85836
* Diagnose implementation of a property declared in a categoryFariborz Jahanian2009-11-021-0/+8
| | | | | | in its class implementation instead of crashing. Fixes radar 7350345. llvm-svn: 85813
* When determining whether a reference to a static data member is anDouglas Gregor2009-11-011-1/+1
| | | | | | | | | integral constant expression, make sure to find where the initializer was provided---inside or outside the class definition---since that can affect whether we have an integral constant expression (and, we need to see the initializer itself). llvm-svn: 85741
* Within a template, qualified name lookup can refer to a non-dependent typeDouglas Gregor2009-11-011-0/+6
| | | | | | | | | that is not known to be a base class at template definition time due to some dependent base class. Treat qualified name lookup that refers to a non-static data member or function as implicit class member access when the "this" type would be dependent. llvm-svn: 85718
* Implement "incremental" template instantiation for non-type templateDouglas Gregor2009-10-313-58/+90
| | | | | | | | | | | | | | | parameters and template type parameters, which occurs when substituting into the declarations of member templates inside class templates. This eliminates errors about our inability to "reduce non-type template parameter depth", fixing PR5311. Also fixes a bug when instantiating a template type parameter declaration in a member template, where we weren't properly reducing the template parameter's depth. LLVM's StringSwitch header now parses. llvm-svn: 85669
* When a friend is declared in a dependent context, don't even try toDouglas Gregor2009-10-302-3/+12
| | | | | | match it up with a declaration in the outer scope. llvm-svn: 85628
* Instantiate class template friends better; fixes PR5332.Douglas Gregor2009-10-301-1/+8
| | | | llvm-svn: 85612
* Include macros in code-completion resultsDouglas Gregor2009-10-302-13/+88
| | | | llvm-svn: 85594
* warn about returning the address of a label.Chris Lattner2009-10-301-1/+6
| | | | llvm-svn: 85576
* Add a CK_DerivedToBaseMemberPointer cast kind and use it in Sema (Still no ↵Anders Carlsson2009-10-301-3/+5
| | | | | | codegen). llvm-svn: 85552
* Include pointee type information in the diagnostic for creating bad pointers orJohn McCall2009-10-301-4/+4
| | | | | | arrays. llvm-svn: 85550
* Report accurate source-location information when rebuilding types duringJohn McCall2009-10-301-80/+93
| | | | | | template instantiation. llvm-svn: 85545
* We may need to instantiate a class template specialization as part of a ↵Douglas Gregor2009-10-291-0/+1
| | | | | | derived-to-base pointer case llvm-svn: 85532
* Slightly improve source-location information during template instantiationDouglas Gregor2009-10-291-0/+1
| | | | llvm-svn: 85529
* Properly instantiate usage of overloaded operator []. Fixes PR5345.Sebastian Redl2009-10-294-98/+158
| | | | llvm-svn: 85524
* A few TemplateArgumentLoc clean-ups. Try to remember the Expr for a ↵John McCall2009-10-292-17/+35
| | | | | | | | declaration. Provide an API for getting the SourceRange of a TAL and use it judiciously. llvm-svn: 85520
* Yet more instantiation-location information. Fixes PR5336.Douglas Gregor2009-10-291-0/+2
| | | | llvm-svn: 85516
* Make sure to call CompleteConstructorCall for bases and members that are ↵Anders Carlsson2009-10-293-29/+57
| | | | | | initialized implicitly in constructors so that default arguments etc are set correctly. Fixes PR5283. llvm-svn: 85510
* Track source information for template arguments and template specializationJohn McCall2009-10-2912-238/+395
| | | | | | | types. Preserve it through template instantiation. Preserve it through PCH, although TSTs themselves aren't serializable, so that's pretty much meaningless. llvm-svn: 85500
* Implement support for semantic checking and template instantiation ofDouglas Gregor2009-10-295-83/+328
| | | | | | | | class template partial specializations of member templates. Also, fixes a silly little bug in the marking of "used" template parameters in member templates. Fixes PR5236. llvm-svn: 85447
* Use array's base element type in getting to itsFariborz Jahanian2009-10-282-2/+2
| | | | | | constructor. WIP. llvm-svn: 85420
* Removed an unnecessary arguement passed to InitializeVarWithConstructorFariborz Jahanian2009-10-283-5/+3
| | | | | | | which should come from the variable and wasn't correct for arrays in any case. No change in functionality. llvm-svn: 85415
* Diagnose use of data pointer member in a function callFariborz Jahanian2009-10-281-14/+19
| | | | | | expression instead of crashing. llvm-svn: 85401
* Slightly improve source location information during template instantiationDouglas Gregor2009-10-281-0/+10
| | | | llvm-svn: 85353
* Type of a conditional expression with two distinct objective-cFariborz Jahanian2009-10-271-1/+4
| | | | | | | class pointer is the most derived common class of the two. This is <rdar://problem/7334235>. llvm-svn: 85337
* Introduce FunctionDecl::isInlined() to tell whether a function shouldDouglas Gregor2009-10-271-1/+1
| | | | | | be inlined. llvm-svn: 85307
* Rename FunctionDecl::isInline/setInline toDouglas Gregor2009-10-273-10/+10
| | | | | | FunctionDecl::isInlineSpecified/setInlineSpecified. llvm-svn: 85305
* Explicit instantiation suppresses the instantiation of non-inlineDouglas Gregor2009-10-272-19/+6
| | | | | | | function template specializations and member functions of class template specializations. llvm-svn: 85300
* An explicit instantiation definition only instantiations those classDouglas Gregor2009-10-274-81/+144
| | | | | | | | | members that have a definition. Also, use CheckSpecializationInstantiationRedecl as part of this instantiation to make sure that we diagnose the various kinds of problems that can occur with explicit instantiations. llvm-svn: 85270
* Generate constructor for value-initialization cases, even if the Fariborz Jahanian2009-10-271-2/+29
| | | | | | | implementation technique doesn't call the constructor at that point. DR302. Fixes pr5296. llvm-svn: 85249
* Implement Chris's suggestions for the precendence warnings. Reformat the ↵Sebastian Redl2009-10-271-26/+22
| | | | | | code a bit. Test the fixits. llvm-svn: 85231
* Only set the point of instantiation for an implicit or explicitDouglas Gregor2009-10-275-24/+36
| | | | | | | | | | instantiation once we have committed to performing the instantiation. As part of this, make our makeshift template-instantiation location information suck slightly less. Fixes PR5264. llvm-svn: 85209
* Almost missed this one... Doc update for last change.Mike Stump2009-10-271-4/+5
| | | | llvm-svn: 85196
* Refine noreturn handling. Fixes -Wmissing-noreturn so that it doesn'tMike Stump2009-10-272-6/+15
| | | | | | | complain that functions that have a return statement should be declared noreturn. Fixed PR5286. llvm-svn: 85195
* Use a pred_iterator instead of a succ_iterator (wrong typedef).Ted Kremenek2009-10-271-1/+1
| | | | llvm-svn: 85193
* Add 'fixit' hint on mis-use of pointer-to-memberFariborz Jahanian2009-10-261-2/+5
| | | | | | binary operators. llvm-svn: 85153
* Add fixit hint to bitwise precedence warning.Sebastian Redl2009-10-261-8/+31
| | | | llvm-svn: 85129
* Implement a warning for mixing bitwise logical with comparison ops. Fixes ↵Sebastian Redl2009-10-261-0/+50
| | | | | | PR5297. llvm-svn: 85117
* Fix PR5298 - -Wmissing-noreturn shouldn't warn if the function is alreadyChris Lattner2009-10-251-2/+3
| | | | | | declared noreturn. llvm-svn: 85075
* Implement rdar://6756623 - use of deprecated type in deprecated typedef ↵Chris Lattner2009-10-253-10/+29
| | | | | | should not warn llvm-svn: 85073
* Make sure we actually have a definition before asking if it is implicit. ↵Sebastian Redl2009-10-251-2/+6
| | | | | | Fixes PR4674. llvm-svn: 85072
* When parsing a top level struct declaration, make sure to Chris Lattner2009-10-251-3/+4
| | | | | | | | | process decl attributes instead of dropping them on the floor. This allows us to diagnose cases like the testcase. Also don't diagnose deprecated stuff in ActOnTag: not all uses of tags may be 'uses', and SemaType does this now. llvm-svn: 85071
* move calls to DiagnoseUseOfDecl (which warns about deprecated/unavailable Chris Lattner2009-10-252-15/+24
| | | | | | | | types) out of Sema::getTypeName into ConvertDeclSpecToType. getTypeName is sometimes used as a predicate in the parser, so it could cause redundant diags to be emitted. This is also needed by two upcoming enhancements. llvm-svn: 85070
* Remove the Skip parameter from GetTypeForDeclarator and dependents. Take the ↵Sebastian Redl2009-10-254-28/+34
| | | | | | opportunity to improve an error message and fix PR4498. llvm-svn: 85068
* remove a nonsensical todoChris Lattner2009-10-251-1/+0
| | | | llvm-svn: 85067
* move the extwarn about using long long out of the entry ofChris Lattner2009-10-251-7/+16
| | | | | | | GetTypeForDeclarator and into the code that handles long long already. llvm-svn: 85063
* simplify interface to ConvertDeclSpecToType, check for inferredChris Lattner2009-10-251-56/+47
| | | | | | | block return types only when a TST isn't specified, not every time through GetTypeForDeclarator. llvm-svn: 85062
* change ConvertDeclSpecToType to be a static function in SemaType.cppChris Lattner2009-10-252-25/+26
| | | | llvm-svn: 85061
* change Sema::ActOnFriendTypeDecl to use GetTypeForDeclarator instead Chris Lattner2009-10-251-5/+6
| | | | | | | | | of ConvertDeclSpecToType, which I'd like to keep private to SemaType.cpp. We do this by cons'ing up a trivial Declarator for the type. John, please review. llvm-svn: 85060
* various cleanups for SemaType.cppChris Lattner2009-10-251-23/+31
| | | | llvm-svn: 85059
OpenPOWER on IntegriCloud