- Jan 11, 2011
-
-
Bob Wilson authored
llvm-svn: 123195
-
- 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
-
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: 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: 123158
-
Zhongxing Xu authored
are all prefixes. llvm-svn: 123156
-
Michael J. Spencer authored
llvm-svn: 123150
-
- 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
-
-
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
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
-
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
-
Fariborz Jahanian authored
llvm-svn: 122987
-
Douglas Gregor authored
parameters into parameter types, so that substitution of explicitly-specified function template arguments uses the same path. This enables the use of explicitly-specified function template arguments with variadic templates. llvm-svn: 122986
-
- Jan 06, 2011
-
-
Douglas Gregor authored
template whose last parameter is a parameter pack. This allows us to form a call to, e.g., template<typename ...Args1, typename ...Args2> void f(std::pair<Args1, Args2> ...pairs); given zero or more instances of "pair". llvm-svn: 122973
-
Bob Wilson authored
Patch by Sylvère Teissier. llvm-svn: 122965
-
Roman Divacky authored
Fix the width and align of bool type on Darwin to be 32bits while keeping it 8 everywhere else. Change the definition of va_list to default to SV4 ABI one and let darwin subtarget override this. Both changes submitted by Nathan Whitehorn and reviewed by Rafael Espindola. llvm-svn: 122956
-
-
John McCall authored
The initial TreeTransform is a cop-out, but it's more-or-less equivalent to what we were doing before, or rather what we're doing now and might eventually stop doing in favor of using this type. I am simultaneously intrigued by the possibilities of rebuilding a dependent Attri llvm-svn: 122942
-
Jakob Stoklund Olesen authored
llvm-svn: 122941
-
Douglas Gregor authored
initialize *all* of the bits to zero. Also, when the pattern of a template argument pack expansion, make sure to set the ellipsis location along all paths. This should clear up the valgrind failure that popped up in Clang. llvm-svn: 122931
-
Douglas Gregor authored
Fast-path an arity check when performing template argument deduction that compares two parameter-type-lists. No functionality change. llvm-svn: 122928
-