- Oct 13, 2009
-
-
Devang Patel authored
Copy metadata when value is RAUW'd. It is debatable whether this is the right approach for custom metadata data in general. However, right now the only custom data user, "dbg", expects this behavior while FE is constructing llvm IR with debug info. llvm-svn: 83977
-
Edward O'Callaghan authored
-funit-at-a-time is the default however some current makefiles pass -fno-unit-at-a-time which is ignored by GCC, we should warn about this not error out. llvm-svn: 83976
-
Devang Patel authored
llvm-svn: 83975
-
Douglas Gregor authored
template as a specialization. For example, this occurs with: template<typename T> struct X { template<typename U> struct Inner { /* ... */ }; }; template<> template<typename T> struct X<int>::Inner { T member; }; We need to treat templates that are member specializations as special in two contexts: - When looking for a definition of a member template, we look through the instantiation chain until we hit the primary template *or a member specialization*. This allows us to distinguish between the primary "Inner" definition and the X<int>::Inner definition, above. - When computing all of the levels of template arguments needed to instantiate a member template, don't add template arguments from contexts outside of the instantiation of a member specialization, since the user has already manually substituted those arguments. Fix up the existing test for p18, which was actually wrong (but we didn't diagnose it because of our poor handling of member specializations of templates), and add a new test for member specializations of templates. llvm-svn: 83974
-
Bob Wilson authored
llvm-svn: 83973
-
Douglas Gregor authored
function templates. This commit ensures that friend function templates are constructed as FunctionTemplateDecls rather than partial FunctionDecls (as they previously were). It then implements template instantiation for friend function templates, injecting the friend function template only when no previous declaration exists at the time of instantiation. Oh, and make sure that explicit specialization declarations are not friends. llvm-svn: 83970
-
Mike Stump authored
offsets for covariant thunks. llvm-svn: 83965
-
Benjamin Kramer authored
llvm-svn: 83964
-
Duncan Sands authored
write to it. llvm-svn: 83963
-
Duncan Sands authored
these constants unsigned. llvm-svn: 83962
-
Nick Lewycky authored
llvm-svn: 83960
-
Nick Lewycky authored
modify through the pointer they're given. llvm-svn: 83959
-
Chris Lattner authored
which is a common idiom to improve PIC'ness of code using the addr of label extension. This implementation is a gross hack, but the only other alternative would be to teach evalutate about this horrid combination. While GCC allows things like "&&foo - &&bar + 1", people don't use this in practice. This implements PR5131. llvm-svn: 83957
-
Nick Lewycky authored
sections of memory objects. llvm-svn: 83953
-
Chris Lattner authored
1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). llvm-svn: 83952
-
Chris Lattner authored
hairier (but nonsensical) example. llvm-svn: 83951
-
Daniel Dunbar authored
llvm-svn: 83950
-
Zhongxing Xu authored
llvm-svn: 83949
-
Chris Lattner authored
for a null pointer. In other words, "&&foo != NULL" will always work out to true. llvm-svn: 83948
-
Chris Lattner authored
more places in clang codegen now. llvm-svn: 83947
-
John Thompson authored
llvm-svn: 83945
-
Chris Lattner authored
llvm-svn: 83943
-
Chris Lattner authored
llvm-svn: 83942
-
Chris Lattner authored
llvm-svn: 83941
-
Chris Lattner authored
about the reason, rdar://7186119. llvm-svn: 83940
-
Chris Lattner authored
previously we only recognized it on inputs. llvm-svn: 83939
-
Chris Lattner authored
llvm-svn: 83938
-
Chris Lattner authored
llvm-svn: 83937
-
Zhongxing Xu authored
llvm-svn: 83936
-
Zhongxing Xu authored
llvm-svn: 83935
-
Zhongxing Xu authored
llvm-svn: 83934
-
Devang Patel authored
llvm-svn: 83933
-
Dan Gohman authored
llvm-svn: 83932
-
Victor Hernandez authored
Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call. It should continue scanning until the malloc call, and this patch fixes that. llvm-svn: 83931
-
Edward O'Callaghan authored
llvm-svn: 83930
-
Devang Patel authored
Disable tests that check debug info intrinsic. This does not work if debug info intrinsics are not used to encode debug info. llvm-svn: 83929
-
Devang Patel authored
llvm-svn: 83928
-
Devang Patel authored
llvm-svn: 83925
-
Douglas Gregor authored
llvm-svn: 83924
-
Douglas Gregor authored
that the scope in which it is being declared is complete. Also, when instantiating a member class template's ClassTemplateDecl, be sure to delay type creation so that the resulting type is dependent. Ick. llvm-svn: 83923
-