John McCall
a192536ebe
Desugaring optimizations. Add single-step desugaring methods to all
...
concrete types. Use unqualified desugaring for getAs<> and sundry.
Fix a few users to either not desugar or use qualified desugar, as seemed
appropriate. Removed Type's qualified desugar method, as it was easy
to accidentally use instead of QualType's.
llvm-svn: 83116
2009-09-29 23:03:30 +00:00
Devang Patel
7b4d52b170
Lookup handler name only when assertions are enabled.
...
llvm-svn: 83114
2009-09-29 22:05:52 +00:00
Douglas Gregor
98496dc3eb
The C++ delete expression strips cv-qualifiers from the pointed-to type. My previous fix eliminated this behavior, so bring it back again.
...
llvm-svn: 83113
2009-09-29 21:38:53 +00:00
Argyrios Kyrtzidis
8da9ce6328
Pull TypeLocVisitor into its own header file.
...
llvm-svn: 83112
2009-09-29 21:27:32 +00:00
Argyrios Kyrtzidis
4361bc1b43
Keep track of type references in DeclReferenceMap.
...
llvm-svn: 83111
2009-09-29 21:26:53 +00:00
Argyrios Kyrtzidis
9c28a3d13c
In ASTVisitor, call the correct base methods.
...
llvm-svn: 83110
2009-09-29 21:26:35 +00:00
Argyrios Kyrtzidis
edd1129c36
Fix Decl class hierarchy.
...
llvm-svn: 83109
2009-09-29 21:26:14 +00:00
Devang Patel
b4034364d6
Add removeMD().
...
llvm-svn: 83107
2009-09-29 20:42:25 +00:00
Devang Patel
5bf7a49fd7
Only one custom meadata of each kind can be attached with an instruction.
...
llvm-svn: 83105
2009-09-29 20:30:57 +00:00
Fariborz Jahanian
3a36ab08b7
13.1-p3 Overloadable declarations
...
Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent.
llvm-svn: 83104
2009-09-29 20:28:06 +00:00
Jim Grosbach
3ea3fe6594
Additional check for regno==0
...
llvm-svn: 83103
2009-09-29 20:11:10 +00:00
Devang Patel
561977940c
Use assertion instead of early exit to catch malformed custom metadata store.
...
llvm-svn: 83102
2009-09-29 20:01:19 +00:00
Argyrios Kyrtzidis
f881301d3a
Resolve a source location inside the return type of a functon.
...
llvm-svn: 83101
2009-09-29 19:58:16 +00:00
Devang Patel
5d58383ea9
Remove unnecessary cast.
...
llvm-svn: 83100
2009-09-29 19:56:13 +00:00
Argyrios Kyrtzidis
419e38bbe2
When pointing at a type decl reference, ASTLocation is a NamedDeclRef.
...
llvm-svn: 83099
2009-09-29 19:45:58 +00:00
Argyrios Kyrtzidis
05677cae08
Resolve a source location that is inside a type declarator.
...
llvm-svn: 83098
2009-09-29 19:45:41 +00:00
Argyrios Kyrtzidis
0643e333a3
Introduce ObjCInterfaceLoc which provides type source information for ObjC interfaces.
...
llvm-svn: 83097
2009-09-29 19:45:22 +00:00
Argyrios Kyrtzidis
d4bcfaf351
Introduce TypedefLoc::getTypedefDecl().
...
llvm-svn: 83096
2009-09-29 19:44:47 +00:00
Argyrios Kyrtzidis
4cbe85904c
Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:
...
-A NamedDecl reference
-A TypeLoc
llvm-svn: 83095
2009-09-29 19:44:27 +00:00
Argyrios Kyrtzidis
73360e1bbb
Introduce ObjCProtocolListLoc for keeping source location information for protocol references.
...
llvm-svn: 83094
2009-09-29 19:43:35 +00:00
Argyrios Kyrtzidis
a7a36dfdb6
Introduce ObjCProtocolListType type subclass.
...
This is used only for keeping detailed type source information for protocol references,
it should not participate in the semantics of the type system.
Its protocol list is not canonicalized.
llvm-svn: 83093
2009-09-29 19:42:55 +00:00
Argyrios Kyrtzidis
5ec645b494
Move DeclSpec::setProtocolQualifiers() out of line.
...
llvm-svn: 83092
2009-09-29 19:42:11 +00:00
Argyrios Kyrtzidis
fc1f9e4945
Keep protocol source locations when parsing protocol references.
...
llvm-svn: 83091
2009-09-29 19:41:44 +00:00
Argyrios Kyrtzidis
1632b142b6
Introduce Type::getTypeClassName() that returns the string associated with the TypeClass enum.
...
llvm-svn: 83090
2009-09-29 19:41:13 +00:00
Argyrios Kyrtzidis
402e1dcf6f
Introduce TypeLoc::getSourceRange().
...
llvm-svn: 83089
2009-09-29 19:40:46 +00:00
Argyrios Kyrtzidis
1b7c4ca37d
-Introduce TypeLoc::getOpaqueData()
...
-Make TypeLoc's constructor public.
llvm-svn: 83088
2009-09-29 19:40:20 +00:00
Argyrios Kyrtzidis
81aba1fe53
Add more const-goodness to ASTLocation.
...
llvm-svn: 83087
2009-09-29 19:39:53 +00:00
Daniel Dunbar
d71a03b164
Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
...
libexec, *blush*.
llvm-svn: 83086
2009-09-29 18:52:10 +00:00
Daniel Dunbar
88f2300d19
Add a test case demonstrating a situation where we get protocol type checking
...
right for multiple anonymous categories.
llvm-svn: 83085
2009-09-29 18:51:43 +00:00
Devang Patel
b296942f6d
Remove std::string uses from DebugInfo interface.
...
llvm-svn: 83083
2009-09-29 18:40:58 +00:00
Devang Patel
73e8d43588
Create empty StringRef is incoming cstring is NULL.
...
llvm-svn: 83082
2009-09-29 18:39:56 +00:00
Jim Grosbach
a4a7f44cb5
Simplify the tracking of virtual frame index registers. Ranges cannot overlap,
...
so a simple "current register" will suffice. Also add some additional
sanity-checking assertions to make sure things are as we expect.
llvm-svn: 83081
2009-09-29 18:23:15 +00:00
Douglas Gregor
bb3e12fc0b
Handle C++ delete expressions when the overloaded delete operator is a
...
"usual deallocation function" with two arguments. CodeGen will have to
handle this case specifically, since the value for the second argument
(the size of the allocated object) may have to be computed at run
time.
Fixes the Sema part of PR4782.
llvm-svn: 83080
2009-09-29 18:16:17 +00:00
Fariborz Jahanian
91ae9fd9e8
Fixes a nasty bug which only turned up in 32bit build of clang and
...
had to do with an initialized field when multiple type conversions
are ambiguous but must be treated as user defined conversion for
overload resolution purposes.
llvm-svn: 83079
2009-09-29 17:31:54 +00:00
Jim Grosbach
8fc22227bb
Moving register scavenging to a post pass results in virtual registers in
...
the instruction we're scavenging for. The scavenger needs to know to avoid
them when analyzing register usage.
llvm-svn: 83077
2009-09-29 17:24:37 +00:00
David Goodwin
bef958c716
Post-RA regressions.
...
llvm-svn: 83075
2009-09-29 17:10:26 +00:00
Ted Kremenek
73583083f7
Update checker build.
...
llvm-svn: 83074
2009-09-29 17:08:03 +00:00
Ted Kremenek
228539f015
Fix: <rdar://problem/7261075> [RegionStore] crash when handling load: '*((unsigned int *)"????")'
...
This issue was originally reported via personal email by Thomas Clement!
llvm-svn: 83069
2009-09-29 16:36:48 +00:00
Douglas Gregor
78f0fa518c
Make sure to flush raw_string_ostream, from John Thompson
...
llvm-svn: 83066
2009-09-29 15:13:39 +00:00
Douglas Gregor
6b603c9ec5
Allow the PYTHON make variable to override the default Python when running Clang tests, from Ken Dyck.
...
llvm-svn: 83065
2009-09-29 14:54:28 +00:00
Douglas Gregor
63b3556c9c
Set GNUMode only for the "gnu" language standard options, from Ken Dyck!
...
llvm-svn: 83064
2009-09-29 14:42:43 +00:00
Douglas Gregor
a49cb4e494
Slightly improve the semantics of extern templates for member functions of class templates
...
llvm-svn: 83063
2009-09-29 14:38:03 +00:00
Evan Cheng
139c3dba53
Fix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.
...
llvm-svn: 83058
2009-09-29 07:07:30 +00:00
Ted Kremenek
cc22424c87
Fix really insidious bug in RegionStoreManager::RemoveDeadBindings()
...
identified with a false positive reported by Thomas Clement. This
involved doing another rewrite of
RegionStoreManager::RemoveDeadBindings(), which phrases the entire
problem of scanning for dead regions as a graph exploration problem.
It is more methodic than the previous implementation.
llvm-svn: 83053
2009-09-29 06:35:00 +00:00
Nick Lewycky
9b3f71600a
Regenerate.
...
llvm-svn: 83052
2009-09-29 06:18:23 +00:00
Nick Lewycky
fa4c2d3baf
Fix configure bug that only shows up in a clean build. Don't try to invoke gcc
...
until after the compiler itself has been set up.
llvm-svn: 83051
2009-09-29 06:18:00 +00:00
Nick Lewycky
c5975fce2b
Roll back r83048.
...
llvm-svn: 83050
2009-09-29 05:48:51 +00:00
Nick Lewycky
a2b1ac2a93
Regenerate.
...
llvm-svn: 83048
2009-09-29 05:41:21 +00:00
Nick Lewycky
90df990f73
On Linux, uname -m reports the kernel type. Some Linux systems are 32-bit but
...
with a 64-bit kernel, which confuses LLVM. Make LLVM double-check this by
checking which defines the system gcc actually sets.
llvm-svn: 83047
2009-09-29 05:40:45 +00:00
Anders Carlsson
025893300c
Remove PR5061 workaround.
...
llvm-svn: 83046
2009-09-29 05:36:21 +00:00