David Blaikie
a953f2825b
Update Clang tests to handle explicitly typed load changes in LLVM.
...
llvm-svn: 230795
2015-02-27 21:19:58 +00:00
David Blaikie
218b783192
Update Clang tests to handle explicitly typed gep changes in LLVM.
...
llvm-svn: 230783
2015-02-27 19:18:17 +00:00
David Blaikie
a23916f1cd
Update test to make it robust to migration to typeless pointers
...
llvm-svn: 229269
2015-02-15 04:12:14 +00:00
Richard Smith
902a0238aa
DR1748: the reserved placement allocation functions have undefined behavior if
...
they're given a null pointer as an argument, so we do not need to emit null
checks on their results.
llvm-svn: 229213
2015-02-14 01:52:20 +00:00
Richard Smith
599bed75ed
Bugfix: don't assert if someone manages to declare an operator new/delete template before the builtin operator new/delete.
...
llvm-svn: 210230
2014-06-05 00:43:02 +00:00
Richard Smith
760520bcb7
Add __builtin_operator_new and __builtin_operator_delete, which act like calls
...
to the normal non-placement ::operator new and ::operator delete, but allow
optimizations like new-expressions and delete-expressions do.
llvm-svn: 210137
2014-06-03 23:27:44 +00:00
Nico Rieck
e6a1582595
Fix broken CHECK lines
...
llvm-svn: 201477
2014-02-16 07:29:41 +00:00
Stephen Lin
4362261b00
CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.
...
llvm-svn: 188447
2013-08-15 06:47:53 +00:00
Richard Smith
8d0dc31dca
Tighten up the set of operator new/operator delete calls we're permitted to
...
optimize, to follow the permissions granted in N3664. Under those rules, only
calls generated by new-expressions and delete-expressions are permitted to be
optimized, and direct calls to ::operator new and ::operator delete must be
treated as normal calls.
llvm-svn: 186799
2013-07-21 23:12:18 +00:00
Eli Friedman
48ddcf2cb5
Fix a CodeGen bug where we would skip zero-initialization for
...
array new with a non-trivial constructor. Pointed out in PR13380.
llvm-svn: 162643
2012-08-25 07:11:29 +00:00
Eli Friedman
b971d49765
Elide copy construction in new expressions. PR11757.
...
llvm-svn: 150738
2012-02-16 22:45:48 +00:00
Eli Friedman
de6a86b4f6
Make array new on a pointer to data member type work correctly. PR11523.
...
llvm-svn: 146291
2011-12-09 23:05:37 +00:00
John McCall
f677a8e99e
Convert the standard default-construction loops to use phis and
...
partial destruction.
llvm-svn: 135033
2011-07-13 06:10:41 +00:00
Douglas Gregor
3bdcff5866
When instantiating a C++ "new" expression, don't fake source locations
...
for the '(' and ')' around the initializer unless we actually have an
initializer. Fixes PR10197, an issue where we were value-initializing
rather than default-initializing.
llvm-svn: 133913
2011-06-27 16:55:54 +00:00
John McCall
7ec4b4342c
Don't actually emit calls to the reserved global placement new and delete
...
operators; their semantics are guaranteed by the language.
If someone wants to argue that freestanding compiles shouldn't recognize
this, I might be convinceable.
llvm-svn: 131395
2011-05-16 01:05:12 +00:00
Douglas Gregor
040ad500c4
Fix a few more ConvertTypes that should be ConvertTypeForMems, fixing
...
two regressions in Boost.Config.
llvm-svn: 112908
2010-09-02 23:24:14 +00:00
John McCall
8ed55a54fd
Abstract IR generation of array cookies into the C++ ABI class and
...
implement ARM array cookies. Also fix a few unfortunate bugs:
- throwing dtors in deletes prevented the allocation from being deleted
- adding the cookie to the new[] size was not being considered for
overflow (and, more seriously, was screwing up the earlier checks)
- deleting an array via a pointer to array of class type was not
causing any destructors to be run and was passing the unadjusted
pointer to the deallocator
- lots of address-space problems, in case anyone wants to support
free store in a variant address space :)
llvm-svn: 112814
2010-09-02 09:58:18 +00:00
Argyrios Kyrtzidis
7648fb464b
Fix miscompilation. The cookie was not used when new'ing arrays with multiple dimensions.
...
llvm-svn: 112188
2010-08-26 15:23:38 +00:00
Argyrios Kyrtzidis
1194d5e3d2
Fix miscompilation. The custom new[]/delete[] methods were not getting called for arrays with more than 1 dimension.
...
llvm-svn: 112107
2010-08-25 23:14:56 +00:00
Douglas Gregor
c1a42fdd53
Make sure to add MallocAttr to explicitly-declared operator new/new[]
...
when -fassume-sane-operator-new. Patch by Tom Jablin!
llvm-svn: 111363
2010-08-18 15:06:25 +00:00
Douglas Gregor
05fc5be32f
Implement zero-initialization for array new when there is an
...
initializer of (). Make sure to use a simple memset() when we can, or
fall back to generating a loop when a simple memset will not
suffice. Fixes <rdar://problem/8212208>, a regression due to my work
in r107857.
llvm-svn: 108977
2010-07-21 01:10:17 +00:00
Chris Lattner
32ac583d91
in 'new int[4]', constant fold the 4*4=16 instead of
...
doing an overflow check.
llvm-svn: 108943
2010-07-20 21:55:52 +00:00
Chris Lattner
2be2074f75
temporarily disable this to fix the build bot.
...
llvm-svn: 108936
2010-07-20 21:32:10 +00:00
Anders Carlsson
d040e6b25a
Don't build an aggregate constructor loop when the constructor is trivial.
...
llvm-svn: 102912
2010-05-03 15:09:17 +00:00
Anders Carlsson
16e94af67c
Don't copy or initialize empty classes. Fixes PR7012.
...
llvm-svn: 102891
2010-05-03 01:20:20 +00:00
Mon P Wang
cc2ab0cdc9
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset.
...
llvm-svn: 100305
2010-04-04 03:10:52 +00:00
Mon P Wang
f7f3bff646
Revert r100193 since it causes failures in objc in clang
...
llvm-svn: 100200
2010-04-02 18:43:42 +00:00
Mon P Wang
4b82a88764
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset.
...
llvm-svn: 100193
2010-04-02 18:04:30 +00:00
Bob Wilson
adb58e32cc
Revert Mon Ping's 99930 due to broken llvm-gcc buildbots.
...
llvm-svn: 99949
2010-03-30 22:28:46 +00:00
Mon P Wang
231e99743a
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset
...
llvm-svn: 99930
2010-03-30 21:02:45 +00:00
Nuno Lopes
13c88c7269
implement PR5654: add -fassume-sane-operator-new, which is enabled by default, and adds the malloc attribute to the global function new() and to the overloaded new operators.
...
feel free to chage the name to this lengthy argument
llvm-svn: 91543
2009-12-16 16:59:22 +00:00
Anders Carlsson
18ada9856f
Handle ImplicitValueInitExpr in AggExprEmitter.
...
llvm-svn: 91519
2009-12-16 06:57:54 +00:00
Daniel Dunbar
8fbe78f6fc
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
...
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
2009-12-15 20:14:24 +00:00
Fariborz Jahanian
831451b417
Fix the test case failed in buildbot.
...
llvm-svn: 89791
2009-11-24 19:37:10 +00:00
Fariborz Jahanian
835026e9f1
Refactor collection of call arguments in common code.
...
Add support for variadic collection functions. More to do
here.
llvm-svn: 89781
2009-11-24 18:29:37 +00:00
Anders Carlsson
5838108317
Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.
...
llvm-svn: 89613
2009-11-22 19:25:33 +00:00
Daniel Dunbar
d8ff51bf49
Fix test portability.
...
llvm-svn: 86911
2009-11-12 00:41:41 +00:00
Anders Carlsson
f771681e63
Emit new[] cookie when needed.
...
llvm-svn: 82642
2009-09-23 18:59:48 +00:00
Anders Carlsson
b4bd0666d2
Basic support for new[].
...
llvm-svn: 82628
2009-09-23 16:07:23 +00:00
Anders Carlsson
fa7c608ecc
Fix a thinko.
...
llvm-svn: 72679
2009-06-01 00:26:14 +00:00
Anders Carlsson
ca50119a31
Check for null correctly for new expressions.
...
llvm-svn: 72678
2009-06-01 00:05:16 +00:00
Anders Carlsson
cba81fc4de
Improve irgen of 'new' further.
...
llvm-svn: 72677
2009-05-31 21:53:59 +00:00
Anders Carlsson
96c012ff8b
...and aggregate POD types.
...
llvm-svn: 72676
2009-05-31 21:12:26 +00:00
Anders Carlsson
60d0c2c1c2
Support for complex types.
...
llvm-svn: 72675
2009-05-31 21:07:58 +00:00
Anders Carlsson
ec71f61608
Better support for scalar POD types in 'new' expressions.
...
llvm-svn: 72674
2009-05-31 20:56:36 +00:00
Anders Carlsson
6f9dabff6d
Make sure to copy back arguments that can be changed by FindAllocationOverload. This fixes placement new. (Sebastian, please review).
...
llvm-svn: 72673
2009-05-31 20:26:12 +00:00
Anders Carlsson
1832f52b10
Very basic irgen support for new expressions.
...
llvm-svn: 72672
2009-05-31 20:21:44 +00:00