- Aug 29, 2009
-
-
Douglas Gregor authored
llvm-svn: 80397
-
- Aug 28, 2009
-
-
Douglas Gregor authored
member templates. llvm-svn: 80396
-
Douglas Gregor authored
llvm-svn: 80395
-
Douglas Gregor authored
llvm-svn: 80394
-
Douglas Gregor authored
to a multi-level template argument list by making it explicit. The forced auditing of callers found a bug in the instantiation of member classes inside member templates. I *love* static type systems. llvm-svn: 80391
-
Douglas Gregor authored
When performing template instantiation of the definitions of member templates (or members thereof), we build a data structure containing the template arguments from each "level" of template instantiation. During template instantiation, we substitute all levels of template arguments simultaneously. llvm-svn: 80389
-
Ted Kremenek authored
llvm-svn: 80388
-
Ted Kremenek authored
objects that are not automatically garbage collected. This fixes <rdar://problem/7174400>. llvm-svn: 80387
-
Anders Carlsson authored
llvm-svn: 80383
-
Fariborz Jahanian authored
llvm-svn: 80382
-
Douglas Gregor authored
MultiLevelTemplateArgumentList. This is a baby step toward instantiating member templates; no intended functionality change yet. llvm-svn: 80380
-
Anders Carlsson authored
llvm-svn: 80377
-
Fariborz Jahanian authored
llvm-svn: 80375
-
Anders Carlsson authored
llvm-svn: 80374
-
Anders Carlsson authored
When doing overload resolution, expressions that are value dependent but not type dependent and of integral type should not be treated as null pointer constants. llvm-svn: 80369
-
Anders Carlsson authored
llvm-svn: 80366
-
Fariborz Jahanian authored
with class type conversion methods. WIP. llvm-svn: 80365
-
John McCall authored
declarations of same, introduce a single AST class and add appropriate bits (encoded in the namespace) for whether a decl is "real" or not. Much hackery about previously-declared / not-previously-declared, but it's essentially mandated by the standard that friends alter lookup, and this is at least fairly non-intrusive. Refactor the Sema methods specific to friends for cleaner flow and less nesting. Incidentally solve a few bugs, but I remain confident that we can put them back. llvm-svn: 80353
-
Anders Carlsson authored
llvm-svn: 80333
-
Anders Carlsson authored
llvm-svn: 80332
-
rdar://problem/6337132Ted Kremenek authored
Were Dropped Successfully Patch by Geoff Keating! llvm-svn: 80313
-
Douglas Gregor authored
class template specializations (when possible) and look into base classes. Thanks to Eli for the test case! FIXME -=1. llvm-svn: 80302
-
Chris Lattner authored
endian hosts. Fixes PR4792 llvm-svn: 80301
-
- Aug 27, 2009
-
-
Eli Friedman authored
cause any regressions. llvm-svn: 80277
-
Sebastian Redl authored
llvm-svn: 80276
-
Eli Friedman authored
llvm-svn: 80275
-
Eli Friedman authored
llvm-svn: 80274
-
Eli Friedman authored
llvm-svn: 80273
-
Eli Friedman authored
llvm-svn: 80272
-
Douglas Gregor authored
templates within class templates, producing a member function template of a class template specialization. If you can parse that, I'm sorry. Example: template<typename T> struct X { template<typename U> void f(T, U); }; When we instantiate X<int>, we now instantiate the declaration X<int>::f, which looks like this: template<typename U> void X<int>::f(int, U); The path this takes through TemplateDeclInstantiator::VisitCXXMethodDecl is convoluted and ugly, but I don't know how to improve it yet. I'm resting my hopes on the multi-level substitution required to instantiate definitions of nested templates, which may simplify this code as well. More testing to come... llvm-svn: 80252
-
Douglas Gregor authored
When checking whether one declaration context encloses another, make sure to look at the primary contexts. Thanks to Eli for the test case llvm-svn: 80212
-
Anders Carlsson authored
llvm-svn: 80211
-
Anders Carlsson authored
Add a BuildCXXTemporaryObjectExpr and use it so default arguments will be instantiated correctly for temporary object expressions. llvm-svn: 80206
-
Mike Stump authored
llvm-svn: 80189
-
Mike Stump authored
llvm-svn: 80185
-
Mike Stump authored
almost correct. :-) llvm-svn: 80181
-
Douglas Gregor authored
name, e.g., x->Base::f() retain the qualifier (and its source range information) in a new subclass of MemberExpr called CXXQualifiedMemberExpr. Provide construction, transformation, profiling, printing, etc., for this new expression type. When a virtual function is called via a qualified name, don't emit a virtual call. Instead, call that function directly. Mike, could you add a CodeGen test for this, too? llvm-svn: 80167
-
- Aug 26, 2009
-
-
Douglas Gregor authored
types or type-dependent expressions. llvm-svn: 80143
-
Mike Stump authored
but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. llvm-svn: 80137
-
Eli Friedman authored
Issue reported on cfe-dev. Also fixed the code to use isConstant to determine whether to generate a constant global, to be consistent with CodeGenModule. This probably needs to be refactored to deal with C++, though. llvm-svn: 80131
-