]>
granicus.if.org Git - clang/log
Daniel Dunbar [Thu, 17 Sep 2009 16:21:10 +0000 (16:21 +0000)]
ARM: Incremental improvement to preprocessor defines.
- Based on patch by Shantonu.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82147
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 16:12:20 +0000 (16:12 +0000)]
Ignore extern "C++" { } when mangling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82146
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 07:21:40 +0000 (07:21 +0000)]
Force triple for tests using __strong.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82133
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 07:03:19 +0000 (07:03 +0000)]
Add ARM register names and aliases.
- Patch by Shantonu Sen!
<rdar://problem/
6922650 > clang doesn't know about ARM registers for inline asm clobber lists
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82132
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 06:53:36 +0000 (06:53 +0000)]
Driver: Change -O to mean -O2, -O1 is meaningless.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82131
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 06:31:27 +0000 (06:31 +0000)]
Fix two crashes on value dependent expressions (shift and null-pointer check).
- Doug, please check.
- PR4940.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82129
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 06:31:17 +0000 (06:31 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82128
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 05:45:52 +0000 (05:45 +0000)]
Add a bunch of math builtins, #include <cmath> passes now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82126
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 05:31:47 +0000 (05:31 +0000)]
Revert r82123 for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82125
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 04:42:56 +0000 (04:42 +0000)]
Temporary band-aid for handling empty classes somewhat better.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82124
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 04:38:23 +0000 (04:38 +0000)]
Treat an unqualified RecordType as a RecordDecl when substituting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82123
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 04:16:28 +0000 (04:16 +0000)]
Substitution for prefixes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82122
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 04:13:54 +0000 (04:13 +0000)]
Convert mangle-subst.cpp over to using FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82121
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 04:13:26 +0000 (04:13 +0000)]
Improve driver error message when only running the preprocessor and an input is
already preprocessed.
--
ddunbar@giles:tmp$ touch t.i
ddunbar@giles:tmp$ gcc -E t.i
ddunbar@giles:tmp$ clang -E t.i
clang: warning: t.i: previously preprocessed input unused when '-E' is present
ddunbar@giles:tmp$
--
<rdar://problem/
6813375 > [driver] driver prints confusing message when running -E on preprocessed file
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82120
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 04:02:31 +0000 (04:02 +0000)]
Substitute unscoped template names.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82119
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 04:01:40 +0000 (04:01 +0000)]
IRgen/ObjC: Correctly construct the function info for variadic message sends.
This fixes some bad -O0 codegen and the unnecessary clearing of al on entry to objc_msgSend for most message sends.
<rdar://problem/
7102824 > [irgen] unnecessary xorb on calls to objc_msgSend on x86_64
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82118
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 04:01:22 +0000 (04:01 +0000)]
IRgen/ObjC: Make the target method decl available to GenerateMessageSendSuper.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82117
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 03:53:28 +0000 (03:53 +0000)]
Add mangleSubstitution/addSubstitution variants that take a NamedDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82116
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 03:48:45 +0000 (03:48 +0000)]
Get rid of the last grep.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82115
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 03:46:43 +0000 (03:46 +0000)]
When mangling function template specialization, mangle the type encoding of the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82114
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 03:17:01 +0000 (03:17 +0000)]
Add new functions to the mangler for the <unscoped-name> and <unscoped-template-name> productions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82113
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 03:06:51 +0000 (03:06 +0000)]
PCH: When writing PCH files, tweak the predicate function deciding whether to mark a decl as "external" to be closer to reality.
This still isn't perfect, but I believe it is conservatively accurate at marking decls which IRgen needs to see, while still keeping the "deserialization footprint" on Cocoa.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82112
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 03:06:44 +0000 (03:06 +0000)]
PCH: When deserializing an explicit "external definition", don't pass it to HandleTopLevelDecl -- this is already being done inside the reader.
This is something of a hack, since whether the reader actually did this depends on the "isConsumerInterestedIn" predicate. I think we need to rework how this works, but I need to discuss with Doug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82111
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:48:13 +0000 (00:48 +0000)]
Initial support for code generation from .ast files.
- Doesn't actually work yet because only module level asm's get correctly marked as externally visible in the PCH.
- Other things like 'clang-cc foo.ast -ast-dump' now work, as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82107
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:48:00 +0000 (00:48 +0000)]
clang-cc: Factor out code for creating one of the standard AST consumer actions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82106
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:47:53 +0000 (00:47 +0000)]
We don't need a -compile-ast clang-cc action, we can just use -S.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82105
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:47:46 +0000 (00:47 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82104
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:47:27 +0000 (00:47 +0000)]
clang-cc: Remove -ObjC -ObjC++ handling from clang-cc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82103
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 17 Sep 2009 00:43:46 +0000 (00:43 +0000)]
Add basic substitution to the C++ mangler. It currently only looks at types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82102
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:28:00 +0000 (00:28 +0000)]
Force triple, although probably the real fix is to tie __strong to -fobjc-gc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82101
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:07:21 +0000 (00:07 +0000)]
Fix substituto.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82099
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:07:10 +0000 (00:07 +0000)]
Add CLANG_{SOURCE,BINARY}_DIR cmake variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82098
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 16 Sep 2009 23:53:19 +0000 (23:53 +0000)]
Add a simple const mangling test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82096
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 23:52:53 +0000 (23:52 +0000)]
Removed useless stuff from the test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82095
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 23:49:04 +0000 (23:49 +0000)]
More test for objc gc's mixed write-barriers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82094
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 16 Sep 2009 23:47:08 +0000 (23:47 +0000)]
When creating function types, remove any top-level CVR qualifications in the function type argument types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82093
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 23:38:26 +0000 (23:38 +0000)]
Additional tests for write-bariers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82092
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 23:30:59 +0000 (23:30 +0000)]
Test for variety of write-barriers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82091
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 23:11:23 +0000 (23:11 +0000)]
patch for generating objc'2 objc_assign_ivar. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82090
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 16 Sep 2009 22:47:08 +0000 (22:47 +0000)]
Improved representation and support for friend class templates. Angst about same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82088
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Sep 2009 22:30:48 +0000 (22:30 +0000)]
CMake: Generate LIT site configuration file for Clang tests, which Daniel will probably have to fix
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82086
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Sep 2009 21:59:05 +0000 (21:59 +0000)]
The CMake build system now derives the Clang version number from VER.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82085
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 21:37:16 +0000 (21:37 +0000)]
Starting patch to generate more specific API for objc's
GC. Currently, new API will be generated under
clang-cc's -fobjc-newgc-api flag which will eventually
become the default. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82082
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 16 Sep 2009 20:41:09 +0000 (20:41 +0000)]
Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82078
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 20:18:54 +0000 (20:18 +0000)]
fit in 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82073
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 16 Sep 2009 19:19:43 +0000 (19:19 +0000)]
Improve handling of vector casts in C++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82072
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 18:56:12 +0000 (18:56 +0000)]
grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82070
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Sep 2009 18:34:49 +0000 (18:34 +0000)]
Teach Sema::FindInstantiatedDecl to find instantiated RecordDecls even
when we are not instantiating the corresponding "current
instantiation." This happens, e.g., when we are instantiating a
declaration reference that refers into the "current instantiation" but
occurs in a default function argument. The libstdc++ vector default
constructor now instantiates properly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82069
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 18:09:18 +0000 (18:09 +0000)]
Do not generate write-barrier in indirect assignment to
a weak object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82061
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Sep 2009 16:49:08 +0000 (16:49 +0000)]
Removed a superfluous check before setting
a flag (objc GC).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82052
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 16 Sep 2009 15:53:40 +0000 (15:53 +0000)]
x86-64 ABI: If a type is a C++ record with either a non-trivial destructor or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82050
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 16 Sep 2009 13:10:04 +0000 (13:10 +0000)]
PR4991: Properly remove trailing newline from __TIMESTAMP__.
Replace strcpy with memcpy while at it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82043
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Sep 2009 06:17:29 +0000 (06:17 +0000)]
Incremental improvement to logic determining whether we emit unwind tables or
not.
- PR4932.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82021
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 16 Sep 2009 06:04:26 +0000 (06:04 +0000)]
Have divide-by-zero checker not handled undefined denominators. This is handled by the generic checking for undefined operands for BinaryOperators.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82019
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 16 Sep 2009 06:03:39 +0000 (06:03 +0000)]
Remove ImplicitBadDivides/ExplicitBadDivides node sets. This checking is now down by a 'Checker' and not build into GRExprEngine.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82017
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:05:27 +0000 (05:05 +0000)]
fix some ppc register name issues, patch by Richard Pennington!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82009
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Sep 2009 01:40:13 +0000 (01:40 +0000)]
A toy for Doug: Add some 'lit' tests which just run clang++ -fsyntax-only over all the files in a directory.
- 'lit utils/C++Tests' to run, you may need to fix the stdc++ include path, and your mileage may vary.
- A handful of the LLVM headers are XFAIL because they don't include the right headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81990
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Sep 2009 01:39:52 +0000 (01:39 +0000)]
tests: Stash clang/clang-cc and LLVM src/obj paths for use elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81989
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 16 Sep 2009 01:35:21 +0000 (01:35 +0000)]
Chris doesn't want the FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81988
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 16 Sep 2009 01:31:09 +0000 (01:31 +0000)]
Add a FIXME, so the next person don't trip as hard on the landmines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81986
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 16 Sep 2009 01:26:05 +0000 (01:26 +0000)]
Collapse more clang version numbers down into fewer places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81983
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 16 Sep 2009 00:39:34 +0000 (00:39 +0000)]
Some people don't want to fix their broken code just yet, so turn off
hard error for falling off a noreturn function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81971
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Sep 2009 00:01:48 +0000 (00:01 +0000)]
Fix a typo in a FIXME
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81960
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 15 Sep 2009 23:04:22 +0000 (23:04 +0000)]
Back to 1.1 we go.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81944
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 23:02:16 +0000 (23:02 +0000)]
In building list of visible conversion functions, use
result type of template convesion functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81943
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 15 Sep 2009 22:49:27 +0000 (22:49 +0000)]
Back out for now, as apparently there is some really broken code somewhere.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81941
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 22:30:29 +0000 (22:30 +0000)]
When implicitly declaring operators new, new[], delete, and delete[],
give them the appropriate exception specifications. This,
unfortunately, requires us to maintain and/or implicitly generate
handles to namespace "std" and the class "std::bad_alloc". However,
every other approach I've come up with was more hackish, and this
standard requirement itself is quite the hack.
Fixes PR4829.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81939
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 22:30:13 +0000 (22:30 +0000)]
Update Clang version for CMake
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81938
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 22:15:23 +0000 (22:15 +0000)]
1) don't do overload resolution in selecting conversion
to pointer function for delete expression. 2)
Treat type conversion function and its 'const' version
as identical in building the visible conversion list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81930
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 15 Sep 2009 22:08:24 +0000 (22:08 +0000)]
Bump.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81929
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 15 Sep 2009 21:49:22 +0000 (21:49 +0000)]
Be sure to use the correct version instead of the wrong one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81925
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 15 Sep 2009 21:48:34 +0000 (21:48 +0000)]
Be sure to use the correct version instead of inventing the wrong one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81924
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 21:14:33 +0000 (21:14 +0000)]
Add back the workaround since it lead to constructor conversion bugs :(
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81917
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 21:14:05 +0000 (21:14 +0000)]
Commit test case from PR4655, which tests the canonical-types fix in r81913
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81916
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 20:50:23 +0000 (20:50 +0000)]
Make sure we're comparing the canonical types when we determine
whether a constructor is a copy constructor.
Sadly, I wasn't able to get down to a test case smaller than libstdc++'s
<string>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81913
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 15 Sep 2009 20:25:34 +0000 (20:25 +0000)]
- clang_getCursor(): Replace asserts with error codes (CXCursor_InvalidFile, CXCursor_NoDeclFound).
- Add predicate clang_isInvalid().
- Implement clang_getCursorFromDecl().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81908
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 20:11:42 +0000 (20:11 +0000)]
When printing an overload candidate that is a function template specialization,
point at the template and print out its template arguments, e.g.,
ambiguous-ovl-print.cpp:5:8: note: candidate function template specialization
[with T = int]
void f(T*, long);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81907
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 19:12:21 +0000 (19:12 +0000)]
Issue good diagnostics when initialization failes due to
ambiguity in type conversion function selection.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81898
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 18:26:13 +0000 (18:26 +0000)]
Add an assertion and a test case, in a fruitless attempt to track down an existing bug
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81885
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 15 Sep 2009 17:43:54 +0000 (17:43 +0000)]
Fix static analyzer regression when emitting undefined value warnings
with binary operators. The result of a binary operator may be
undefined even if its operands are well-defined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81874
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 17:21:47 +0000 (17:21 +0000)]
Perform overload resolution when selecting a pointer conversion
function for delete of a class expression and issue
good diagnostic when result is ambiguous.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81870
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 16:51:42 +0000 (16:51 +0000)]
Slightly improved template argument deduction for use in partial
ordering, along with another test case for partial ordering of partial
specializations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81869
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 16:36:17 +0000 (16:36 +0000)]
Add test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81868
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 16:35:24 +0000 (16:35 +0000)]
Code generation of Conditional operators that are lvalues (but that aren't bitfields).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81867
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 15 Sep 2009 16:23:51 +0000 (16:23 +0000)]
Implement partial ordering of class template partial specializations
(C++ [temp.class.order]).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81866
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 16:15:23 +0000 (16:15 +0000)]
Update for inherited conversion function support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81865
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 16:03:44 +0000 (16:03 +0000)]
Use getTrueExpr/getFalseExpr as suggested by Doug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81863
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 07:42:44 +0000 (07:42 +0000)]
If a conversion operator exists in a base class, make sure to cast the object to that base class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81852
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 06:28:28 +0000 (06:28 +0000)]
When performing an user defined conversion sequence, perform the initial standard conversion sequence. This lets us remove a workaround in SemaCompleteConstructorCall.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81847
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 05:49:31 +0000 (05:49 +0000)]
Revert for real.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81844
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 05:31:01 +0000 (05:31 +0000)]
Whoops, didn't mean to commit this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81842
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 05:28:24 +0000 (05:28 +0000)]
Only reuse an already existing ImplicitCastExpr if the cast kinds are the same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 05:13:45 +0000 (05:13 +0000)]
Get rid of the CastInfo struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81839
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 04:48:33 +0000 (04:48 +0000)]
Handle reinterpret_cast between integral types and pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81837
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 15 Sep 2009 04:39:46 +0000 (04:39 +0000)]
Codegen support for nullptr from C++0x.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81835
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 15 Sep 2009 04:19:09 +0000 (04:19 +0000)]
Per feedback from Eli, recognize in the transfer function logic for
__builtin_offsetof in the static analyzer that __builtin_offsetof is
not guaranteed to return an integer constant. We will need to shore
this up later, but now at least we have correct support for when this
*is* an integer constant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81830
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 15 Sep 2009 03:28:00 +0000 (03:28 +0000)]
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81825
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 15 Sep 2009 00:40:32 +0000 (00:40 +0000)]
Add static analyzer transfer function support for __builtin_offsetof.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81820
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 15 Sep 2009 00:10:11 +0000 (00:10 +0000)]
Issue a good diagnostics when attempt to select
a type convesion function results in ambiguity.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81812
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 14 Sep 2009 23:44:08 +0000 (23:44 +0000)]
clang tracks multiple levels of macro expansion
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81811
91177308 -0d34-0410-b5e6-
96231b3b80d8