- Nov 12, 2009
-
-
Dan Gohman authored
can be made to fall through into the other. llvm-svn: 86909
-
Daniel Dunbar authored
is sane. llvm-svn: 86908
-
Daniel Dunbar authored
llvm-svn: 86907
-
Daniel Dunbar authored
llvm-svn: 86906
-
John McCall authored
and give that category an explicit test. Generalize the internal diagnostic name. llvm-svn: 86905
-
Douglas Gregor authored
annotation token, because some of the tokens we're annotating might not be in the set of cached tokens (we could have consumed them unconditionally). Also, move the tentative parsing from ParseTemplateTemplateArgument into the one caller that needs it, improving recovery. llvm-svn: 86904
-
Daniel Dunbar authored
in the predefines buffer. llvm-svn: 86903
-
Bill Wendling authored
"nounwind" attribute. llvm-svn: 86897
-
John Thompson authored
llvm-svn: 86896
-
Bruno Cardoso Lopes authored
llvm-svn: 86895
-
Douglas Gregor authored
permits, among other things, ripping apart and reconstructing templates via partial specialization: template<typename T> struct DeepRemoveConst { typedef T type; }; template<typename T> struct DeepRemoveConst<const T> { typedef typename DeepRemoveConst<T>::type type; }; template<template<typename> class TT, typename T> struct DeepRemoveConst<TT<T> > { typedef TT<typename DeepRemoveConst<T>::type> type; }; Also, fix a longstanding thinko in the code handling partial ordering of class template partial specializations. We were performing the second deduction without clearing out the results of the first deduction. It's amazing we got through so much code with such a horrendous error :( llvm-svn: 86893
-
- Nov 11, 2009
-
-
John McCall authored
the -Wconversion check. llvm-svn: 86891
-
Fariborz Jahanian authored
llvm-svn: 86890
-
Chris Lattner authored
strswitch. llvm-svn: 86889
-
Fariborz Jahanian authored
llvm-svn: 86888
-
Fariborz Jahanian authored
either both synthesized or bith user defined. Implements radar 6557233. llvm-svn: 86887
-
Chris Lattner authored
uses LVI info when -enable-jump-threading-lvi is passed. llvm-svn: 86886
-
Dan Gohman authored
instead of typedefs for std::pair. This simplifies the type of SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator> llvm-svn: 86885
-
Douglas Gregor authored
with its corresponding template parameter. This can happen when we performed some substitution into the default template argument and what we had doesn't match any more, e.g., template<int> struct A; template<typename T, template<T> class X = A> class B; B<long> b; Previously, we'd emit a pretty but disembodied diagnostic showing how the default argument didn't match the template parameter. The diagnostic was good, but nothing tied it to the *use* of the default argument in "B<long>". This commit fixes that. Also, tweak the counting of active template instantiations to avoid counting non-instantiation records, such as those we create for (surprise!) checking default arguments, instantiating default arguments, and performing substitutions as part of template argument deduction. llvm-svn: 86884
-
Daniel Dunbar authored
not doing this has little to no utility. llvm-svn: 86883
-
Daniel Dunbar authored
Allow Preprocessor to take ownership of the HeaderSearch object. I think it should probably always own the header search object, but I'm not sure... llvm-svn: 86882
-
Daniel Dunbar authored
llvm-svn: 86881
-
Daniel Dunbar authored
CompilerInvocation and clang-cc. llvm-svn: 86880
-
Mike Stump authored
llvm-svn: 86879
-
Mike Stump authored
llvm-svn: 86878
-
Ted Kremenek authored
Remove some stale ErrorNodes variables in GRExprEngine and the old buffer overflow logic in GRExprEngineInternalChecks.cpp. llvm-svn: 86877
-
Kenneth Uildriks authored
x86 users can now return arbitrary sized structs. Structs too large to fit in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. llvm-svn: 86876
-
Dan Gohman authored
llvm-svn: 86875
-
Devang Patel authored
llvm-svn: 86874
-
Dan Gohman authored
llvm-svn: 86873
-
Dan Gohman authored
tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. llvm-svn: 86871
-
Chandler Carruth authored
Sorry about that. llvm-svn: 86869
-
Douglas Gregor authored
template-type-parameter specific template argument checking code and up to the template argument checking loop. In theory, this should make variadic templates work better; in practice, they don't well enough for us to care anyway (YET!), so this is mostly a re-organization to simplify CheckTemplateArgument. llvm-svn: 86868
-
Jakob Stoklund Olesen authored
- Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. llvm-svn: 86867
-
Douglas Gregor authored
increase sanity. No intended functionality change. llvm-svn: 86866
-
Douglas Gregor authored
template template parameter, substitute any prior template arguments into the template template parameter. This, for example, allows us to properly check the template template argument for a class such as: template<typename T, template<T Value> class X> struct Foo; The actual implementation of this feature was trivial; most of the change is dedicated to giving decent diagnostics when this substitution goes horribly wrong. We now get a note like: note: while substituting prior template arguments into template template parameter 'X' [with T = float] As part of this change, enabled some very pedantic checking when comparing template template parameter lists, which shook out a bug in our overly-eager checking of default arguments of template template parameters. We now perform only minimal checking of such default arguments when they are initially parsed. llvm-svn: 86864
-
Chandler Carruth authored
llvm-svn: 86863
-
Devang Patel authored
Do not eagerly set stop point for arguments. This misleads the debugger in identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info. llvm-svn: 86862
-
Devang Patel authored
llvm-svn: 86861
-
Devang Patel authored
add debug info location to an instruction. llvm-svn: 86859
-