- Jan 11, 2011
-
-
Bob Wilson authored
llvm-svn: 123195
-
Matt Beaumont-Gay authored
template arguments. llvm-svn: 123194
-
- Jan 10, 2011
-
-
Rafael Espindola authored
static const char foo[] = "foo"; static const char *bar = "bar"; the global created to hold "bar" will have it, but foo will not. llvm-svn: 123192
-
Douglas Gregor authored
pack expansions in template argument lists and function parameter lists. The implementation of this paragraph should be complete *except* for cases where we're substituting into one of the unexpanded packs in a pack expansion; that's a general issue I haven't solved yet. llvm-svn: 123188
-
Bob Wilson authored
llvm-svn: 123184
-
Bob Wilson authored
llvm-svn: 123183
-
Douglas Gregor authored
argument packs from a set of deduced arguments, then checks that those argument packs match previously-deduced argument packs. llvm-svn: 123182
-
Douglas Gregor authored
template argument packs. This also ensures that explicitly-specified template arguments get properly represented in those cases. llvm-svn: 123180
-
Zhongxing Xu authored
llvm-svn: 123168
-
Zhongxing Xu authored
llvm-svn: 123167
-
Zhongxing Xu authored
llvm-svn: 123166
-
Douglas Gregor authored
allows an argument pack determines via explicit specification of function template arguments to be extended by further, deduced arguments. For example: template<class ... Types> void f(Types ... values); void g() { f<int*, float*>(0, 0, 0); // Types is deduced to the sequence int*, float*, int } There are a number of FIXMEs in here that indicate places where we need to implement + test retained expansions, plus a number of other places in deduction where we need to correctly cope with the explicitly-specified arguments when deducing an argument pack. Furthermore, it appears that the RecursiveASTVisitor needs to be auditied; it's missing some traversals (especially w.r.t. template arguments) that cause it not to find unexpanded parameter packs when it should. The good news, however, is that the tr1::tuple implementation now works fully, and the tr1::bind example (both from N2080) is actually working now. llvm-svn: 123163
-
Douglas Gregor authored
llvm-svn: 123162
-
Zhongxing Xu authored
llvm-svn: 123160
-
Zhongxing Xu authored
llvm-svn: 123159
-
Zhongxing Xu authored
llvm-svn: 123158
-
Zhongxing Xu authored
are all prefixes. llvm-svn: 123156
-
Michael J. Spencer authored
llvm-svn: 123150
-
Zhongxing Xu authored
llvm-svn: 123147
-
- Jan 09, 2011
-
-
Francois Pichet authored
llvm-svn: 123134
-
Benjamin Kramer authored
llvm-svn: 123118
-
Alexis Hunt authored
used to store the CXXConstructorDecl in a delegating constructor. llvm-svn: 123095
-
- Jan 08, 2011
-
-
Alexis Hunt authored
more accurate, and makes it make sense for it to hold a delegating constructor call. llvm-svn: 123084
-
Alexis Hunt authored
llvm-svn: 123076
-
Chandler Carruth authored
temporaries with no-return destructors. The CFG now properly supports temporaries and implicit destructors which both makes this kludge no longer work, and conveniently removes the need for it. Turn on CFG handling of implicit destructors and initializers. Several ad-hoc benchmarks don't indicate any measurable performance impact from growing the CFG, and it fixes real correctness problems with warnings. As a result of turning on these CFG elements, we started to tickle an inf-loop in the unreachable code logic used for warnings. The fix is trivial. llvm-svn: 123056
-
Ted Kremenek authored
prefix in a printf format string is matched with the appropriate conversion specifier. llvm-svn: 123055
-
Ted Kremenek authored
prefix to format conversions (POSIX extension). llvm-svn: 123054
-
- Jan 07, 2011
-
-
Eric Christopher authored
llvm-svn: 123041
-
Douglas Gregor authored
function class template. llvm-svn: 123024
-
Ted Kremenek authored
to reject this code, but at least clang doesn't crash anymore. Crash reported in PR 8880. llvm-svn: 123017
-
Douglas Gregor authored
tuple class template. This implementation is boosted directly from the variadic templates proposal. N2080. Note that one section is #ifdef'd out. I'll implement that aspect of template argument deduction next. llvm-svn: 123016
-
Douglas Gregor authored
TreeTransform version of TransformExprs() rather than explicit loop, so that we expand pack expansions properly. Test cast coming soon... llvm-svn: 123014
-
Douglas Gregor authored
function parameter pack expansions. llvm-svn: 123007
-
Roman Divacky authored
llvm-svn: 123005
-
Roman Divacky authored
llvm-svn: 123004
-
Fariborz Jahanian authored
Fix an unexpected hickup caused by exceeding size of generated table (and a misleading comment). Improve on help message for -fapple-kext. llvm-svn: 123003
-
Douglas Gregor authored
instantiated function parameters, enabling instantiation of arbitrary pack expansions involving function parameter packs. At this point, we can now correctly compile a simple, variadic print() example: #include <iostream> #include <string> void print() {} template<typename Head, typename ...Tail> void print(const Head &head, const Tail &...tail) { std::cout << head; print(tail...); } int main() { std::string hello = "Hello"; print(hello, ", world!", " ", 2011, '\n'); } llvm-svn: 123000
-
Francois Pichet authored
llvm-svn: 122992
-
Francois Pichet authored
Do not use cdecl, fastcall, stdcall etc.. as identifier name. They are reserved keywords at least on MSVC. llvm-svn: 122991
-
John McCall authored
In particular, the iteration variable (if present) should be created and destroyed in a narrow span around the loop body, and the body should be emitted in a cleanup scope in case it's not a compound statement. Otherwise, rename a few variables and use phis instead of temporary variables for the index and buffer count. llvm-svn: 122988
-