aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-05-27IRgen support for calls to functions that return references to aggregate ↵Anders Carlsson
exressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Fix another test case.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72478 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Relax an assert to an if check.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72477 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Initialize ObjCSenderDispatch in LangOptions.Fariborz Jahanian
Patch by Benjamin Kramer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Convert ObjC qualified type clients over to using iterators.Steve Naroff
This allows me to remove some API that I don't want to carry over to ObjCObjectPointerType. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72475 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Create CXXConstructExprs when constructing via copy initialization.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72474 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Fix up constant expression handling to deal with the address Eli Friedman
of a reference correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72463 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Add IRGen support for local variables of reference type.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72462 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Initial stab at a generalized operation for determining theDouglas Gregor
instantiation of a declaration from the template version (or version that lives in a template) and a given set of template arguments. This needs much, much more testing, but it suffices for simple examples like typedef T* iterator; iterator begin(); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72461 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Don't drop the computed implicit conversions when building a call toDouglas Gregor
overloaded operator[] or overloaded postfix unary operator (++, --). Thanks to Eli for finding this bug! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72460 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Add IRGen support for return statements in functions with reference Eli Friedman
type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72459 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Handle operator call expressions where the callee is a member function.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72458 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Functions that return references can be rvalues as well.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72457 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Add another test.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Add support for emitting calls to functions that return references (as ↵Anders Carlsson
lvalues only for now) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Fix typo. I also fixed the hard to read case differences, so that noMike Stump
one else is tempted to copy the style, incorrectly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27Rename an EmitCallExpr function to EmitCall to make it clear that it doesn't ↵Anders Carlsson
emit an expr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72446 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Update comment.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72444 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26And an additional testcase that also works.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72441 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Template instantiation for "typeof" for both types and expressions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72440 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Fixup codegen for volatile structs in the trivial cases (a a=a and a=a=a).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72439 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26A simple dynamic array class template, to be used as a test-bed for template ↵Douglas Gregor
instantiation git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72437 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Make sure that CodeGen sees template instantiations.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Use .data() instead of &...[0].Daniel Dunbar
- Just SmallVectors this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72432 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Esnure that if we have a volatile structure as the destination, thatMike Stump
we actually have a destination. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72429 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26When evaluating a VarDecl as a constant or determining whether it isDouglas Gregor
an integral constant expression, maintain a cache of the value and the is-an-ICE flag within the VarDecl itself. This eliminates exponential-time behavior of the Fibonacci template metaprogram. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Revert to using &...[0] for std::vector, apparently .data isn't generallyDaniel Dunbar
available (and it isn't necessary in this case). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72425 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Use .data() vs &...[0]Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26When trying to pass an argument on the stack, assume LLVM will do the rightDaniel Dunbar
thing for non-aggregate types. - Otherwise we unnecessarily pin values to the stack and currently end up triggering a backend bug in one case. - This loose cooperation with LLVM to implement the ABI is pretty ugly. - <rdar://problem/6918722> [irgen] clang miscompile of many pointer varargs on x86-64 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26The driver/diagnostic client don't need to be on the heap.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72418 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26An Obj-C message send expression can never have a reference type.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72417 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Simplify printing of the statistics for types.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72415 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Fix for PR4140: Add the start of a Linux toolchain (basically, just Eli Friedman
barely enough to get the given usage of -print-file-name working). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72412 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Add a new CallExpr::getCallReturnType and use it in Expr::isLvalueInternal. ↵Anders Carlsson
No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26A block that returns a reference is an lvalue.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72409 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Handle the edge case of a weak function with incomplete type correctly. Eli Friedman
Found by code inspection; I haven't seen this in real-world code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Remove a bunch of unused constructorsAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-26Remove AstGuard.h from Xcode project.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Minor build system changes to make ABITest work correctly on Linux.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Some minor corrections: don't use offsetof on a bitfield, and cast Eli Friedman
printf operands to long to suppress warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Extend getPreferredTypeAlign to handle _Complex double and long long Eli Friedman
correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72401 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25PR4122: Tweak the ambiguity handling to handle (S())() correctly. I've Eli Friedman
left out handling for stuff like (S())++ for the moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25tweak non-null check to put the caret on the function, but underline theChris Lattner
argument. This avoids the argument from being silenced when the argument is the NULL macro, which is defined in a system header. This also makes the output a bit nicer, e.g.: t.c:8:3: warning: null passed to a callee which requires a non-null argument func1(NULL, cp2, i1); ^ ~~~~ vs something like: t.c:8:10: warning: argument is null where non-null is required func1(NULL, cp2, i1); ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25merge two tests.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72392 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25reword a warning for clarityChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72391 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25default -Wnonnull to on.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72390 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25move some format group options around in the file. Move NonNull group intoChris Lattner
DiagnosticGroups.td, and add it as part of -Wformat (which gets it into -Wall). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72389 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25Fix a couple of bugs:Chris Lattner
1. When we accept "#garbage" in asm-with-cpp mode, change the token kind of the # to unknown so that the preprocessor won't try to process it as a real #. This fixes a crash on the attached example 2. Fix macro definition extents processing to handle #foo at the end of a macro to say the definition ends with the foo, not the #. This is a follow-on fix to r72283, and rdar://6916026 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25improve comment, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25fix this test to fail when the patch isn't applied.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72385 91177308-0d34-0410-b5e6-96231b3b80d8