Eli Friedman
c96d4963eb
Implement __is_empty. Patch by Sean Hunt.
...
llvm-svn: 79143
2009-08-15 21:55:26 +00:00
Anders Carlsson
5fd7dad784
getFunctionLevelDeclContext needs to get the previous DeclContext if EnterDeclaratorContext has been called. Fixes PR4694. (Doug, please review)
...
llvm-svn: 78480
2009-08-08 17:48:49 +00:00
Anders Carlsson
21776b75ce
Make sure to diagnose use of declarations in the case where we create an implicit CXXThisExpr.
...
llvm-svn: 78474
2009-08-08 16:55:18 +00:00
Fariborz Jahanian
11a8e95a1a
After reporting ill-formed copy constructor(12.8.p3)
...
don't recurs and crash.
llvm-svn: 78323
2009-08-06 17:22:51 +00:00
Douglas Gregor
d806156d54
Support nested-name-specifiers for C++ member access expressions, e.g.,
...
this->Base::foo
from James Porter!
llvm-svn: 78278
2009-08-06 03:17:00 +00:00
Daniel Dunbar
769f940655
Ok, ok, I give in. Fix tests for unused result warning.
...
llvm-svn: 77780
2009-08-01 06:07:15 +00:00
Fariborz Jahanian
e82da999e9
Fixed test.
...
llvm-svn: 77506
2009-07-29 21:26:28 +00:00
Fariborz Jahanian
4b12ed115a
Some refactoring of member access for
...
performace sake. Also added a test case.
llvm-svn: 77502
2009-07-29 20:41:46 +00:00
Sebastian Redl
63c4da01c8
Check for identical types in C++ catch expression. Patch by Erik Verbruggen.
...
llvm-svn: 77475
2009-07-29 17:15:45 +00:00
Sebastian Redl
955a067bdd
Make functional-style casts emit correct messages, and fix a crash-on-invalid.
...
llvm-svn: 77451
2009-07-29 13:50:23 +00:00
Anders Carlsson
32d105d8d4
Add two more tests.
...
llvm-svn: 77330
2009-07-28 17:14:18 +00:00
Benjamin Kramer
8675976806
fix test (broken in r77224)
...
llvm-svn: 77241
2009-07-27 19:53:49 +00:00
Sebastian Redl
9f831dbbcd
Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators.
...
Add custom conversions to static_cast.
llvm-svn: 77076
2009-07-25 15:41:38 +00:00
Daniel Dunbar
595c98729b
Make having no RUN line a failure.
...
Doug, please look at decltype-crash and instantiate-function-1.mm, I'm not sure
if they are actually testing the right thing / anything.
llvm-svn: 77070
2009-07-25 12:47:38 +00:00
Fariborz Jahanian
4dcc53f312
Fixes broken test by accident.
...
llvm-svn: 77001
2009-07-24 20:33:35 +00:00
Fariborz Jahanian
a5c335527d
More Sema check for constructor's member initializer along
...
with type conversion to fix ir-gen crash.
llvm-svn: 77000
2009-07-24 20:28:49 +00:00
Douglas Gregor
79f83eda84
This patch fixes the implementations of the __has_trivial_destructor
...
and __has_trivial_constructor builtin pseudo-functions and
additionally implements __has_trivial_copy and __has_trivial_assign,
from John McCall!
llvm-svn: 76916
2009-07-23 23:49:00 +00:00
Fariborz Jahanian
ca2f085a4e
Diagnose when base classes and members to be intialized
...
with constructors don't have a matching constructor.
llvm-svn: 76913
2009-07-23 23:32:59 +00:00
Fariborz Jahanian
0228bc1a41
Add constructor used to initialize base/member in
...
CXXBaseOrMemberInitializer AST node. Needed by
its clients to do the initialization.
llvm-svn: 76826
2009-07-23 00:42:24 +00:00
Mike Stump
33979f75a0
Add warning for falling off the end of a function that should return a
...
value. This is on by default, and controlled by -Wreturn-type (-Wmost
-Wall). I believe there should be very few false positives, though
the most interesting case would be:
int() { bar(); }
when bar does:
bar() { while (1) ; }
Here, we assume functions return, unless they are marked with the
noreturn attribute. I can envision a fixit note for functions that
never return normally that don't have a noreturn attribute to add a
noreturn attribute.
If anyone spots other false positives, let me know!
llvm-svn: 76821
2009-07-22 23:56:57 +00:00
Eli Friedman
3af2a77717
Fix the parsing of default arguments for inline member function
...
definitions.
I'm not very familiar with this code, so please review.
llvm-svn: 76796
2009-07-22 21:45:50 +00:00
Mike Stump
753d120975
Prep for new warning.
...
llvm-svn: 76709
2009-07-22 00:43:08 +00:00
Eli Friedman
952c15dd52
Misc fixes for -Wreorder:
...
1. Make it work correctly with anonymous unions.
2. Don't compute it if the warning isn't enabled.
3. Optimize the algorithm slightly to make it linear time in the
case where we don't produce any warnings.
llvm-svn: 76630
2009-07-21 19:28:10 +00:00
Argyrios Kyrtzidis
33c70c9388
Consider nested-names as part of the declarator when resolving an ambiguous statement.
...
llvm-svn: 76583
2009-07-21 17:05:03 +00:00
Fariborz Jahanian
b154ecafa6
Diagnose when a destructor uses a unrelated class type as its name.
...
llvm-svn: 76577
2009-07-21 15:28:50 +00:00
Argyrios Kyrtzidis
1a176f0b96
Fix a crash that occurs in this C++ case:
...
struct foo {
static bool value;
};
bool (foo::value); // crash because of parens
llvm-svn: 76538
2009-07-21 06:43:26 +00:00
Fariborz Jahanian
c0656de03d
Improve message for bad destructor decl. Per Doug's comment.
...
llvm-svn: 76494
2009-07-20 22:41:12 +00:00
Fariborz Jahanian
4041dfc360
Issue a more descriptive diagnostics when mis-declaring
...
a destructor.
llvm-svn: 76436
2009-07-20 17:43:15 +00:00
Anders Carlsson
6d9f6f326d
Handle layout of non-virtual base classes.
...
llvm-svn: 76348
2009-07-19 00:18:47 +00:00
Sebastian Redl
e644e19671
Enhance testing of overriding exception specs for inaccessible base exceptions.
...
llvm-svn: 76317
2009-07-18 14:32:15 +00:00
Chris Lattner
be35620902
This takes a long time to crash, just disable it for now.
...
llvm-svn: 76263
2009-07-17 23:48:38 +00:00
Daniel Dunbar
df1cff7356
Remove excessive use of Carbon.h / Cocoa.h in clang tests.
...
- These kinds of "shotgun" tests are very slow, and do not belong in the
regression suite. If these kinds of tests are regarded to have value, they
should be added to the LLVM test-suite.
- I would actually like to remove all of these tests, but I left Sema/carbon.c
and SemaObjC/cocoa.m...
llvm-svn: 75399
2009-07-11 23:03:07 +00:00
Anders Carlsson
0d14291fbf
Fix a test.
...
llvm-svn: 75327
2009-07-11 01:00:52 +00:00
Anders Carlsson
7ca3f6feea
Fix type of 'this' and add a decltype test.
...
llvm-svn: 75291
2009-07-10 21:35:09 +00:00
Fariborz Jahanian
3554b5a37c
Patch to build list of inherited virtual base classes
...
in their order of construction for each class and use it
to to check on propery order of base class construction
under -Wreorder option.
llvm-svn: 75270
2009-07-10 20:13:23 +00:00
Anders Carlsson
cf1441ab20
Fix another decltype crash.
...
llvm-svn: 75175
2009-07-09 22:00:53 +00:00
Fariborz Jahanian
341583c3ac
Sema check on out of order object initialization of
...
class object's base and members under -Wreorder flag.
llvm-svn: 75168
2009-07-09 19:59:47 +00:00
Anders Carlsson
17973e684d
Use getDeclName in DefineImplicitOverloadedAssign as well.
...
llvm-svn: 75152
2009-07-09 17:47:25 +00:00
Anders Carlsson
52b9180587
Pass the DeclName to the diagnostic builder so that member names will be quoted correctly.
...
llvm-svn: 75150
2009-07-09 17:37:12 +00:00
Douglas Gregor
197e5f7bb7
Improve argument-dependent lookup to find associated classes and
...
namespaces based on the template arguments of a class template
specialization type.
llvm-svn: 74993
2009-07-08 07:51:57 +00:00
Sebastian Redl
86be854fa8
Implement checking of exception spec compatibility for overriding virtual functions.
...
llvm-svn: 74943
2009-07-07 20:29:57 +00:00
Anders Carlsson
1f9648da17
Some (most) type trait expressions require that the argument passed in is a complete type.
...
llvm-svn: 74937
2009-07-07 19:06:02 +00:00
Douglas Gregor
dce892e128
Parsing fix for out-of-line constructors, from Piotr Rak
...
llvm-svn: 74833
2009-07-06 16:40:48 +00:00
Eli Friedman
c131d3b5a2
Fix for PR4502: add calculation of the integer conversion rank for
...
wchar_t.
llvm-svn: 74808
2009-07-05 23:44:27 +00:00
Sebastian Redl
4f4d7b5d8e
Catch function redeclarations with incompatible exception specifications.
...
llvm-svn: 74787
2009-07-04 11:39:00 +00:00
Fariborz Jahanian
302bb6661f
Patch to support optional nested-name-specifier in in ctor-initializer
...
list.
llvm-svn: 74571
2009-06-30 23:26:25 +00:00
Fariborz Jahanian
cae5482f6c
Diagnose multiple initialization of anonymous union
...
fields in the ctor-initializer list.
llvm-svn: 74554
2009-06-30 21:52:59 +00:00
Fariborz Jahanian
7baa71e2dd
More diagnostics related to initialization of direct bases
...
in ctor-initializer list.
llvm-svn: 74541
2009-06-30 17:34:52 +00:00
Anders Carlsson
124f34c150
Make an error message more clear.
...
llvm-svn: 74481
2009-06-30 00:06:57 +00:00
Fariborz Jahanian
651185bf47
A more detailed diagnosis of ill-formed ctor-initializer
...
list.
llvm-svn: 74480
2009-06-30 00:02:17 +00:00