- May 15, 2011
-
-
Anders Carlsson authored
llvm-svn: 131372
-
Argyrios Kyrtzidis authored
Also follow gcc in that arrays of elements with zero size are encoded as arrays with zero elements. llvm-svn: 131369
-
Anders Carlsson authored
that the destructor body is trivial and that all member variables also have either trivial destructors or trivial destructor bodies, we don't need to initialize the vtable pointers since no virtual member functions will be called on the destructor. Fixes PR9181. llvm-svn: 131368
-
- May 14, 2011
-
-
Nico Weber authored
llvm-svn: 131367
-
John McCall authored
send if the receiver is null. Normally it's not worthwhile to check this, but avoiding the null-initialization is nice, and this also avoids nasty problems where the null-initialization is visible within the call because we use an aliased result buffer. rdar://problem/9402992 llvm-svn: 131366
-
rdar://9357400Argyrios Kyrtzidis authored
Go through and expand the members of bases into the encoding string (and encode the VTable as well). Unlike gcc which expands virtual bases as many times as they appear in the hierarchy, clang will only expand them once at the end, to reflect the actual layout. Note that there doesn't seem to be a way to indicate in the encoding that packing/alignment of members is different that normal, in which case the encoding will be out-of-sync with the real layout. If the runtime switches to just consider the size of types without taking into account alignment, we could easily make padding explicit in the encoding (e.g. using arrays of chars). The encoding strings would be longer then though. Also encode a flexible array member as array of 0 size, like gcc, not as a pointer. llvm-svn: 131365
-
Argyrios Kyrtzidis authored
There are APIs, e.g. [NSValue valueWithBytes:objCType:], which use the encoding to find out the size of an object pointed to by a pointer. Make things safer by making it illegal to @encode incomplete types. llvm-svn: 131364
-
Francois Pichet authored
template<class U> struct X1 { template<class T> void f(T*); template<> void f(int*) { } }; Won't be so simple. I need to think more about it. llvm-svn: 131362
-
Alexis Hunt authored
Howard Hinnant. Thanks! llvm-svn: 131349
-
Francois Pichet authored
Necessary to parse MFC and MSVC standard lib code. Example: struct X { template<class T> void f(T) { } template<> void f(int) { } } llvm-svn: 131347
-
Richard Smith authored
Also, don't reject alias templates in all ElaboratedTypes: some ElaboratedTypes do not correspond to elaborated-type-specifiers. llvm-svn: 131342
-
Alexis Hunt authored
operators. llvm-svn: 131338
-
Alexis Hunt authored
llvm-svn: 131337
-
Alexis Hunt authored
llvm-svn: 131336
-
John McCall authored
out as "v-table" message sends and stop calling normal messages "legacy" message sends. Also, fix some comments to reveal the true state of affairs. llvm-svn: 131335
-
John McCall authored
and to decrease the amount of effort in appending strings. llvm-svn: 131323
-
Joerg Sonnenberger authored
llvm-svn: 131321
-
- May 13, 2011
-
-
Joerg Sonnenberger authored
mangled to avoid doing it twice for platforms that use prefixes like Darwin. llvm-svn: 131311
-
Joerg Sonnenberger authored
llvm-svn: 131310
-
Alexis Hunt authored
This fixes PR9910 llvm-svn: 131309
-
Peter Collingbourne authored
__has_extension is a function-like macro which takes the same set of feature identifiers as __has_feature. It evaluates to 1 if the feature is supported by Clang in the current language (either as a language extension or a standard language feature) or 0 if not. At the same time, add support for the C1X feature identifiers c_generic_selections (renamed from generic_selections) and c_static_assert, and document them. Patch by myself and Jean-Daniel Dupas. llvm-svn: 131308
-
Bob Wilson authored
llvm-svn: 131301
-
Bill Wendling authored
llvm-svn: 131300
-
Fariborz Jahanian authored
-fno-constant-cfstrings. Patch by Jonathan Schleifer. llvm-svn: 131298
-
Fariborz Jahanian authored
'true' on detecting protocol cycles. No functionality change. llvm-svn: 131297
-
Alexis Hunt authored
One more special member to go llvm-svn: 131287
-
Peter Collingbourne authored
This introduces a generic base class for the expression evaluator classes, which handles a few common expression types which were previously handled separately in each class. Also, the expression evaluator now uses ConstStmtVisitor. llvm-svn: 131281
-
Bill Wendling authored
llvm-svn: 131278
-
Douglas Gregor authored
constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. llvm-svn: 131276
-
Douglas Gregor authored
template parameter lists to scope specifiers for friend declarations about injected class name types. Fixes the g++.dg/template/memfriend5.C regression in the GCC testsuite. llvm-svn: 131272
-
Alexis Hunt authored
llvm-svn: 131270
-
Bill Wendling authored
correct unaligned load. llvm-svn: 131268
-
Alexis Hunt authored
llvm-svn: 131260
-
Alexis Hunt authored
llvm-svn: 131259
-
Fariborz Jahanian authored
don't build circular AST in protocol's protocol list when user code has introduced it. Indexer and other clients may crash. // rdar://9221614 llvm-svn: 131254
-
- May 12, 2011
-
-
Devang Patel authored
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g llvm-svn: 131245
-
Devang Patel authored
llvm-svn: 131242
-
Howard Hinnant authored
llvm-svn: 131240
-
Devang Patel authored
Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that represent class extension. Radar 9423077. llvm-svn: 131239
-
Bill Wendling authored
(__m128){ p[0], p[1], p[2], p[3] } which produces really bad code. This could be done in instcombine, but it's probably better to do it in the front-end instead. <rdar://problem/9424836> llvm-svn: 131237
-