]>
granicus.if.org Git - clang/log
Douglas Gregor [Mon, 23 Nov 2009 11:41:28 +0000 (11:41 +0000)]
Centralize and complete the computation of value- and type-dependence for DeclRefExprs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89649
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 23 Nov 2009 03:29:59 +0000 (03:29 +0000)]
UndefBranchChecker: more bug reporter helper information emit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89643
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 23 Nov 2009 03:20:54 +0000 (03:20 +0000)]
Initial refactor of UndefBranchChecker. We still use GRBranchNodeBuilder
in the checker directly. But I don't have a better approach for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89640
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Nov 2009 01:53:49 +0000 (01:53 +0000)]
Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89638
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 23 Nov 2009 00:07:14 +0000 (00:07 +0000)]
Change Clang-Code-Compile tests to only -emit-llvm instead of running
codegen/as.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89634
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 23 Nov 2009 00:07:06 +0000 (00:07 +0000)]
Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89633
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 23:01:23 +0000 (23:01 +0000)]
x86_64, PR5582: Layout bases for C++ records.
- Ideally we would have an single iteration interface for this, but this works
for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89632
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 22:08:27 +0000 (22:08 +0000)]
Recognize .hpp as a C++ header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89630
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 22:08:20 +0000 (22:08 +0000)]
Add clang -cc1 parsing of analyzer options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 21:55:22 +0000 (21:55 +0000)]
CMake: Add support for running tests with valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89625
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 20:57:36 +0000 (20:57 +0000)]
Fix LookupResult's sanity-check to handle shadow decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 22 Nov 2009 20:26:21 +0000 (20:26 +0000)]
Change CheckDeadStores to use Expr::isNullPointerConstant, which will correctly determine whether an expression is a null pointer constant.
Patch by Kovarththanan Rajaratnam!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89621
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 19:25:33 +0000 (19:25 +0000)]
Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89613
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 19:13:51 +0000 (19:13 +0000)]
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89611
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 18:56:40 +0000 (18:56 +0000)]
Update a test to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89610
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 18:29:06 +0000 (18:29 +0000)]
Use intptr_t from stdint.h (in freestanding mode) instead of redefining it here
with __INTPTR_TYPE__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89609
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Sun, 22 Nov 2009 17:42:02 +0000 (17:42 +0000)]
Test case for bug fixed in r89457.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89605
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 17:37:31 +0000 (17:37 +0000)]
Move bit-field layout out into a separate function. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89604
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Sun, 22 Nov 2009 16:21:47 +0000 (16:21 +0000)]
Fix for PR5233.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89603
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 15:47:12 +0000 (15:47 +0000)]
Define SIG_ATOMIC_MIN and SIG_ATOMIC_MAX in terms of __SIG_ATOMIC_WIDTH__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89598
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 15:41:04 +0000 (15:41 +0000)]
Define __SIG_ATOMIC_WIDTH__ for use in stdint.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:36:20 +0000 (13:36 +0000)]
Undefined compound assignment result is checked in UndefinedAssignmentChecker. So this check is redundant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89592
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:30:10 +0000 (13:30 +0000)]
Remove invalid comments. The result is undefined only when operands are undefined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89591
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:22:34 +0000 (13:22 +0000)]
Save and restore the HasGen flag in MallocChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89590
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 22 Nov 2009 12:51:08 +0000 (12:51 +0000)]
Don't include a dead header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89587
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 12:29:52 +0000 (12:29 +0000)]
Remove UndefinedAssignmentChecker's header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sun, 22 Nov 2009 07:05:50 +0000 (07:05 +0000)]
Use intptr_t rather than long so that this test will not fail on LLP64 systems,
where long is only 32-bits and so a reinterpret_cast would be ill-formed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89583
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 02:49:43 +0000 (02:49 +0000)]
If a C++ qualified id is followed by a postfix suffix, it is never the direct
operand of an addressof operator, and so we should not treat it as an abstract
member-pointer expression and therefore suppress the implicit member access.
This is really a well-formedness constraint on expressions: a DeclRefExpr of
a FieldDecl or a non-static CXXMethodDecl (or template thereof, or unresolved
collection thereof) should not be allowed in an arbitrary location in the AST.
Arguably it shouldn't be allowed anywhere and we should have a different expr
node type for this. But unfortunately we don't have a good way of enforcing
this kind of constraint right now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89578
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 01:44:31 +0000 (01:44 +0000)]
Reorganize the intermediate BuildDeclarationNameExpr routines again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89575
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 00:44:51 +0000 (00:44 +0000)]
Consider a FunctionTemplate to be an overload all on its lonesome. Track
this information through lookup rather than rederiving it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 21 Nov 2009 23:56:04 +0000 (23:56 +0000)]
Support emitting aggregate class initializers. Fixes PR5581.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89569
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 21 Nov 2009 19:53:08 +0000 (19:53 +0000)]
This patch implements objective-c's 'SEL' type as a built-in
type and fixes a long-standing code gen. crash reported in
at least two PRs and a radar. (radar
7405040 and pr5025).
There are couple of remaining issues that I would like for
Ted. and Doug to look at:
Ted, please look at failure in Analysis/MissingDealloc.m.
I have temporarily added an expected-warning to make the
test pass. This tests has a declaration of 'SEL' type which
may not co-exist with the new changes.
Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp.
I think the changes which I have ifdef'ed out are correct. They
need be considered for in a few Indexer/PCH test cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 17:55:24 +0000 (17:55 +0000)]
Make FixedAddressChecker and experimental check; it currently produces a ton of false positives when analyzing some projects (e.g., Wine).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89560
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sat, 21 Nov 2009 09:45:54 +0000 (09:45 +0000)]
Fix 80-cols violation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89558
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Nov 2009 09:38:42 +0000 (09:38 +0000)]
Overload resolution doesn't decide whether to do ADL or not anymore; stopping
threading that state.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89557
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:17:15 +0000 (09:17 +0000)]
Mangler: Sketch mangling for TemplateArgument::Declaration kind.
- Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89556
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:14:52 +0000 (09:14 +0000)]
Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.
- Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression).
- This also tidies up the predicate to be more obvious what is getting mangled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89555
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:14:44 +0000 (09:14 +0000)]
Mangler: Strengthen invariants, MangleContext::mangleName should only be called on var or function decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89554
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:12:13 +0000 (09:12 +0000)]
Mangler: Inline a bunch of functions into their sole caller, not that I don't love typing for typings sake, but...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89553
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:12:06 +0000 (09:12 +0000)]
DeclPrinter: Indent access specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89552
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:11:59 +0000 (09:11 +0000)]
Remove dead variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89551
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:11:45 +0000 (09:11 +0000)]
Mangler: Split isStdNamespace for when the caller already has a NamespaceDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89550
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:06:31 +0000 (09:06 +0000)]
IRgen: Eliminate CXXNameMangler::mangleCXX{C,D}tor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89549
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:06:22 +0000 (09:06 +0000)]
IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,
instead of requiring clients to make a raw_svector_ostream, which is just an
implementation detail.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89548
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:06:10 +0000 (09:06 +0000)]
Sink free mangle* methods into MangleContext.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89547
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:05:59 +0000 (09:05 +0000)]
Add 1+2 consts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89546
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:05:47 +0000 (09:05 +0000)]
Delete trailing space.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89545
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Nov 2009 08:51:07 +0000 (08:51 +0000)]
"Incremental" progress on using expressions, by which I mean totally ripping
into pretty much everything about overload resolution in order to wean
BuildDeclarationNameExpr off LookupResult::getAsSingleDecl(). Replace
UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the
idea of a non-member lookup that we haven't totally resolved yet, whether by
overloading, argument-dependent lookup, or (eventually) the presence of
a function template in the lookup results.
Incidentally fixes a problem with argument-dependent lookup where we were
still performing ADL even when the lookup results contained something from
a block scope.
Incidentally improves a diagnostic when using an ObjC ivar from a class method.
This just fell out from rewriting BuildDeclarationNameExpr's interaction with
lookup, and I'm too apathetic to break it out.
The only remaining uses of OverloadedFunctionDecl that I know of are in
TemplateName and MemberExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89544
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sat, 21 Nov 2009 08:43:09 +0000 (08:43 +0000)]
Added rudimentary C++0x attribute support.
The following attributes are currently supported in C++0x attribute
lists (and in GNU ones as well):
- align() - semantics believed to be conformant to n3000, except for
redeclarations and what entities it may apply to
- final - semantics believed to be conformant to CWG issue 817's proposed
wording, except for redeclarations
- noreturn - semantics believed to be conformant to n3000, except for
redeclarations
- carries_dependency - currently ignored (this is an optimization hint)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 02:52:12 +0000 (02:52 +0000)]
Add RegionStore test case that shows that floating point values are also implicitly tracked for undefined values. (test case for <rdar://problem/
6811085 >).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89538
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 02:31:29 +0000 (02:31 +0000)]
Fix refacto, gcc's cc1 needs to see --output-pch=, which is not just an alias
for -output-pch=.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89534
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 02:17:47 +0000 (02:17 +0000)]
Add another test case to show the precision of RegionStore over
BasicStore. In this example, BasicStore would lose information about
the pointer in path after '*path++', causing the analyzer to falsely
flag a null dereference. This addresses <rdar://problem/
7191542 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89533
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 21 Nov 2009 02:07:55 +0000 (02:07 +0000)]
Implement C++ [temp.param]p2 correctly, looking ahead when we see a
"typename" parameter to distinguish between non-type and type template
parameters. Fixes the actual bug in PR5559.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89532
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 01:50:48 +0000 (01:50 +0000)]
Restructure DereferenceChecker slightly to handle caching out when we would report a null dereference more than once.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89526
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 01:25:37 +0000 (01:25 +0000)]
Pull BadCallChecker int UndefinedArgChecker, and have UndefinedArgChecker also handled undefined receivers in message expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89524
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Sat, 21 Nov 2009 00:49:54 +0000 (00:49 +0000)]
Add SigAtomicType to TargetInfo, Needed for MSP and PIC Targets, Credit to Ken Dyck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89520
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 00:49:41 +0000 (00:49 +0000)]
More checker refactoring. Passing undefined values in a message expression is now handled by UndefinedArgChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89519
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Thompson [Sat, 21 Nov 2009 00:15:52 +0000 (00:15 +0000)]
Revised Win32 include path to search highest version in registry, plus platform SDK path
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89517
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 23:46:56 +0000 (23:46 +0000)]
Convert test to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89514
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 20 Nov 2009 23:44:51 +0000 (23:44 +0000)]
Checkpoint current work. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89513
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 23:39:24 +0000 (23:39 +0000)]
Cope with extraneous "template" keyword when providing an out-of-line
definition of a member template (or a member thereof). Fixes PR5566.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89512
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 23:28:07 +0000 (23:28 +0000)]
Driver: Add clang -cc1 dependency output options parsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89508
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:47:55 +0000 (22:47 +0000)]
Switch CompilerInvocation::CreateFromArgs to take const char** arguments until Driver itself switches to StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89503
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:32:38 +0000 (22:32 +0000)]
Fix refactoro, clang-cc wasn't properly reporting errors when opening an output file failed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89502
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:32:30 +0000 (22:32 +0000)]
Driver: Use '-target-abi' 'FOO' instead of '-target-abi=FOO'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89501
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:21:59 +0000 (22:21 +0000)]
Update for palign intrinsic fix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89499
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:21:52 +0000 (22:21 +0000)]
Pass '-mcpu' 'FOO' instead of '-mcpu=FOO'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89498
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 22:21:36 +0000 (22:21 +0000)]
Standardize Driver translation to call clang-cc using '-foo' form instead of '--foo'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89497
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 22:05:53 +0000 (22:05 +0000)]
A previous commit fixed PR5519; here's the test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89494
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 22:03:38 +0000 (22:03 +0000)]
Implement C++ [basic.lookup.classref]p3, which states how the type
name 'T' is looked up in the expression
t.~T()
Previously, we weren't looking into the type of "t", and therefore
would fail when T actually referred to an injected-class-name. Fixes
PR5530.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89493
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 22:00:06 +0000 (22:00 +0000)]
Update C++ status
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89492
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 19:58:21 +0000 (19:58 +0000)]
When checking the base object of a member access expression (b.foo,
b->foo), don't look through pointers unless we have an -> operator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89480
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 19:42:02 +0000 (19:42 +0000)]
Teach FixOverloadedFunctionReference to build new expression ASTs rather
than tweaking existing ASTs, since we were (*gasp*) stomping on ASTs
within templates. I'm glad we found this little stick of TNT early...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89475
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 20 Nov 2009 18:51:28 +0000 (18:51 +0000)]
Add testcases for recent checkins.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89469
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 20 Nov 2009 17:27:56 +0000 (17:27 +0000)]
Fix lifetime of conditional temporaries. Patch by Victor Zverovich!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89467
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 17:23:39 +0000 (17:23 +0000)]
Fix some codegen tests to include positive checks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89465
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 17:23:30 +0000 (17:23 +0000)]
Add clang -cc1 parsing of CodeGenOptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89464
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 16:55:31 +0000 (16:55 +0000)]
clang-cc: Lift setForcedLangOptions out of options initialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89462
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Fri, 20 Nov 2009 16:49:10 +0000 (16:49 +0000)]
Avoid unwanted expansion in macros that paste together INT<n>_C(v) and
UINT<n>_C(v) macros.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89461
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Fri, 20 Nov 2009 16:44:38 +0000 (16:44 +0000)]
Avoid unwanted expansion in macros that paste together INT<n>_MIN, INT<n>_MAX,
and UINT<n>_MAX defintions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89460
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Fri, 20 Nov 2009 16:37:35 +0000 (16:37 +0000)]
Avoid unwanted macro expansion in macros that paste together int<n>_t and
uint<n>_t definitions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89459
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 20 Nov 2009 14:50:59 +0000 (14:50 +0000)]
Fixed crash when using undefined protocols (GNU runtime).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89457
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 20 Nov 2009 11:49:06 +0000 (11:49 +0000)]
Add a workaround to silence a bogus g++-4.4 -pedantic warning.
driver.cpp:211: warning: ISO C++ forbids zero-size array 'argv'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89455
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 20 Nov 2009 10:03:00 +0000 (10:03 +0000)]
Fix typo GCC 4.3 warned about.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89453
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 20 Nov 2009 06:14:56 +0000 (06:14 +0000)]
no need to cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89451
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 20 Nov 2009 05:53:06 +0000 (05:53 +0000)]
Fix a couple minor memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89450
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Nov 2009 05:27:05 +0000 (05:27 +0000)]
Add simple static analyzer checker to check for sending 'release', 'retain', etc. directly to a class. Fixes <rdar://problem/
7252064 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89449
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Nov 2009 04:31:57 +0000 (04:31 +0000)]
Unused ivar checker: ivars referenced by lexically nested functions should not be flagged as unused. Fixes <rdar://problem/
7254495 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89448
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 20 Nov 2009 04:09:56 +0000 (04:09 +0000)]
No need to pass the state argument explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89447
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 20 Nov 2009 03:50:46 +0000 (03:50 +0000)]
Revert r89437 and add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89446
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 20 Nov 2009 02:31:07 +0000 (02:31 +0000)]
Implement throw d, where d is a class type that requires copy
construction. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89442
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 02:31:03 +0000 (02:31 +0000)]
Don't build an explicit conversion to a reference type
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89441
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 20 Nov 2009 01:57:39 +0000 (01:57 +0000)]
Handle throw d, where d is a class type but only has a trivial copy
constructor. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89438
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 20 Nov 2009 01:56:48 +0000 (01:56 +0000)]
It's unnecessary to check for unknown at this point.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89437
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 01:46:44 +0000 (01:46 +0000)]
Driver: Add parsing for TargetOptions to CompilerInvocation::CreateFromArgs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89435
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Nov 2009 01:31:27 +0000 (01:31 +0000)]
Ignore -Wstrict-overflow={3,4,5} for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89433
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Nov 2009 01:20:12 +0000 (01:20 +0000)]
Really fix test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89430
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Nov 2009 01:19:22 +0000 (01:19 +0000)]
Fix test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89429
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Nov 2009 00:59:20 +0000 (00:59 +0000)]
When we have a non-dependent expression such as
A::f
that occurs within a non-static member function with a type-dependent
"this", don't consider this to be a case for introduction of an
implicit "(*this)." to refer to a specific member function unless we
know (at template definition time) that A is a base class of *this.
There is some disagreement here between GCC, EDG, and Clang about the
handling of this case. I believe that Clang now has the correct,
literal interpretation of the standard, but have asked for
clarification (c++std-core-15483).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89425
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 20 Nov 2009 00:56:31 +0000 (00:56 +0000)]
Add suport for throw;. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89424
91177308 -0d34-0410-b5e6-
96231b3b80d8