Ted Kremenek
c0f3f72fa4
Add 'clang_getClangVersion()' function to CIndex. This exposes the full Clang version string through the CIndex API.
...
llvm-svn: 94242
2010-01-22 22:44:15 +00:00
Ted Kremenek
51b8bc93f8
Move version string generation (e.g., "clang 1.1 ...") to libBasic/Version.cpp, getClangFullVendorVersion().
...
llvm-svn: 94235
2010-01-22 22:29:50 +00:00
Ted Kremenek
18e066f6a9
(1) Rename getClangSubversionRevision() to getClangRevision(), and
...
have it return a StringRef instead of an integer (to be more VCS
agnostic).
(2) Add getClangFullRepositoryVersion(), which contains an
amalgamation of the repository name and the revision.
(3) Change PCH to only emit the string returned by
getClangFullRepositoryVersion() instead of also emitting the value
of getClangSubversionRevision() (which has been removed). This is
functionally equivalent.
More cleanup to version string generation pending...
llvm-svn: 94231
2010-01-22 22:12:47 +00:00
Fariborz Jahanian
8c6c0b6a1f
ui64, etc. are valid VS suffixes.
...
Fixes radar 7562363.
llvm-svn: 94224
2010-01-22 21:36:53 +00:00
Ted Kremenek
17437130e9
Rename pch::SVN_BRANCH_REVISION to pch::VERSION_CONTROL_BRANCH_REVISION.
...
llvm-svn: 94214
2010-01-22 20:59:36 +00:00
Ted Kremenek
2377a0e0ea
Rename getClangSubversionPath() -> getClangRepositoryPath() and have it return a StringRef.
...
llvm-svn: 94213
2010-01-22 20:55:35 +00:00
Mike Stump
0a2754ed8a
Be sure to select primary bases among the nearly empties in preorder,
...
not just among the direct bases. Before we where missing nearly
empties that were bases of virtual base classes.
llvm-svn: 94208
2010-01-22 20:27:17 +00:00
Douglas Gregor
562c1f9365
Teach CIndex's cursor visitor to restrict its traversal to a specific
...
region of interest (if provided). Implement clang_getCursor() in terms
of this traversal rather than using the Index library; the unified
cursor visitor is more complete, and will be The Way Forward.
Minor other tweaks needed to make this work:
- Extend Preprocessor::getLocForEndOfToken() to accept an offset
from the end, making it easy to move to the last character in the
token (rather than just past the end of the token).
- In Lexer::MeasureTokenLength(), the length of whitespace is zero.
llvm-svn: 94200
2010-01-22 19:49:59 +00:00
Mike Stump
1f49d65235
Finish off fixing up debug information.
...
llvm-svn: 94193
2010-01-22 18:48:47 +00:00
Fariborz Jahanian
53967e2abd
Patch fixes a lookup bug in c++'s anonymous union member
...
lookup. Fixes radar 7562438.
llvm-svn: 94191
2010-01-22 18:30:17 +00:00
Anders Carlsson
7caa4cb87a
No need to canonicalize the type and use dyn_cast. Also, correctly diagnose trying to override a function returning an lvalue reference with a function overriding an rvalue reference.
...
llvm-svn: 94183
2010-01-22 17:37:20 +00:00
Douglas Gregor
0599df16a6
Eliminate some Clang warnings
...
llvm-svn: 94177
2010-01-22 15:41:14 +00:00
Benjamin Kramer
d6b28fc6ad
Simplify code.
...
llvm-svn: 94175
2010-01-22 13:59:13 +00:00
Chandler Carruth
df7fd5f8d5
Fix an obvious goof that caused us to only see the top level of return types
...
when checking for covariance. Added some fun test cases, fixes PR6110.
This felt obvious enough to just commit. ;] Let me know if anything needs
tweaking.
llvm-svn: 94173
2010-01-22 13:07:41 +00:00
Mike Stump
9eb76d47f2
Ensure we output all non-virtual base vtables. Fixes PR5890.
...
llvm-svn: 94163
2010-01-22 06:45:05 +00:00
Zhongxing Xu
a1293a67cd
Process cast according to the cast kind. Prepare for more specific cast
...
handling (for C++). No functionality change for now.
llvm-svn: 94153
2010-01-22 04:30:00 +00:00
Daniel Dunbar
7cde09ac8a
Driver/Darwin: Update tool chain to use static clang_rt libraries provided by
...
compiler-rt. This tool chain now works on x86 and ARM, but isn't the x86 default
yet.
This drastically cleans up the linker invocation, old invocation:
--
"/Developer/usr/bin/../libexec/gcc/i686-apple-darwin10/4.2.1/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.6.0" "-weak_reference_mismatches" "non-weak" "-o" "a.out" "-lcrt1.10.6.o" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64" "-L/usr/lib/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.." "t.o" "-lSystem" "-lgcc"
--
New invocation:
--
# For 10.6:
"/usr/bin/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.6.0" "-o" "a.out" "-lcrt1.10.6.o" "t.o" "-lSystem"
# For 10.4:
"/usr/bin/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.4" "-o" "a.out" "-lcrt1.o" "t.o" "-lSystem" "-lgcc_s.10.4" "/Volumes/Data/ddunbar/llvm.obj.64/Debug/lib/clang/1.1/lib/darwin/libclang_rt.10.4.a"
--
llvm-svn: 94150
2010-01-22 03:38:14 +00:00
Daniel Dunbar
93d7acfcf2
Driver/Darwin/ld: Fix refacto, -force_cpusubtype_ALL should only be forwarded,
...
not always added.
llvm-svn: 94149
2010-01-22 03:37:33 +00:00
Mike Stump
d2808449e4
Update debugging code.
...
llvm-svn: 94145
2010-01-22 02:51:26 +00:00
Daniel Dunbar
dcc3b657f2
Driver/Darwin/ld: Factor out getDarwinArchName, for getting the "Darwin" arch
...
name being used in an driver invocation.
llvm-svn: 94139
2010-01-22 02:04:58 +00:00
Daniel Dunbar
a48823fdbe
Driver/Darwin/ld: Eliminate AddDarwinSubArch, our linker invocation is going to
...
diverge from gcc anyway.
llvm-svn: 94138
2010-01-22 02:04:52 +00:00
Daniel Dunbar
42e3df065e
Use raw_ostream instead of cstdio.
...
llvm-svn: 94136
2010-01-22 02:04:41 +00:00
John McCall
f7b2fb51d1
Create function, block, and template parameters in the context of the
...
translation unit. This is temporary for function and block parameters;
template parameters can just stay this way, since Templates aren't
DeclContexts. This gives us the nice property that everything created
in a record DC should have access in C++.
llvm-svn: 94122
2010-01-22 00:28:27 +00:00
Chris Lattner
fde85356c6
revert my patch for rdar://7520940 that warns when a published header
...
is #included with "foo.h" style syntax instead of framework syntax.
It produced too much noise.
llvm-svn: 94120
2010-01-22 00:14:44 +00:00
Mike Stump
6cbe36fe5a
Wire up the new range reporting for unreachable code.
...
llvm-svn: 94118
2010-01-21 23:49:01 +00:00
Mike Stump
60dbeebee8
Improve unreachable code warnings with respect to dead member and
...
dead array references.
llvm-svn: 94115
2010-01-21 23:15:53 +00:00
Mike Stump
fcd6f94ba7
Improve unreachable code warnings for with respect to dead functional casts in C++.
...
llvm-svn: 94106
2010-01-21 22:12:18 +00:00
Mike Stump
d12e495f17
Improve unreachable code warnings for with respect to c-style casts.
...
llvm-svn: 94094
2010-01-21 19:51:34 +00:00
Mike Stump
c18c403670
Improve unreachable code warnings for with respect to ? :.
...
llvm-svn: 94093
2010-01-21 19:44:04 +00:00
Ted Kremenek
819e873791
Allocate the 'Protocols' array in ObjCInterfaceType and
...
ObjCObjectPointerType using the allocator associated with ASTContext.
Not only does this fix a memory leak, but it also makes these arrays
BumpPtrAllocated (in the typical case).
llvm-svn: 94090
2010-01-21 19:22:34 +00:00
Fariborz Jahanian
da8ec2bc9e
Patch to implement rewriting of properties.
...
Fixes radar 7562952.
llvm-svn: 94087
2010-01-21 17:36:00 +00:00
Mike Stump
14781509fd
Improve unreachable code warnings for with respect to compound
...
assignments.
llvm-svn: 94086
2010-01-21 17:31:41 +00:00
Mike Stump
cc3a853df7
Improve unreachable code warnings with respect to dead binary and
...
unary operators.
llvm-svn: 94084
2010-01-21 17:21:23 +00:00
Daniel Dunbar
ae928714df
Update to use llvm/utils/GetSourceVersion to detect version number, instead of
...
assuming SVN. This should be fixed to not necessarily be an integer.
llvm-svn: 94081
2010-01-21 16:56:47 +00:00
Anders Carlsson
f768db7775
Move the VTT related code into its own file, CGVTT.cpp
...
llvm-svn: 94079
2010-01-21 16:50:45 +00:00
Douglas Gregor
ff59f676d0
Teach code-completion to deal with calls to functions without prototypes.
...
llvm-svn: 94076
2010-01-21 15:46:19 +00:00
Mike Stump
04c6851cd6
Speed up compilation by avoiding generating exceptional edges from
...
CallExprs as those edges help cause a n^2 explosion in the number of
destructor calls. Other consumers, such as static analysis, that
would like to have more a more complete CFG can select the inclusion
of those edges as CFG build time.
This also fixes up the two compilation users of CFGs to be tolerant of
having or not having those edges. All catch code is assumed be to
live if we didn't generate the exceptional edges for CallExprs.
llvm-svn: 94074
2010-01-21 15:20:48 +00:00
Mike Stump
0c2ec779cf
Move some recent checking code into SemaChecking instead.
...
llvm-svn: 94067
2010-01-21 03:59:47 +00:00
Mike Stump
87f2f9b465
Avoid instantiating std::sort to save on compiler size.
...
llvm-svn: 94065
2010-01-21 03:43:13 +00:00
Mike Stump
7df27e7038
When checking for unreachable code, we can trivially avoid checking
...
for unreachable loops if all the blocks are already marked live by
this point.
llvm-svn: 94064
2010-01-21 03:07:51 +00:00
Mike Stump
02230ab7a6
When checking for unreachable blocks, we can trivially avoid extra
...
work, if we know we already marked all blocks as live.
llvm-svn: 94063
2010-01-21 02:55:37 +00:00
Mike Stump
6bf1c08e99
Add infrastructure to add base initializers and member initializers to
...
the CFG. WIP.
llvm-svn: 94062
2010-01-21 02:21:40 +00:00
Fariborz Jahanian
879cc735fc
Fixes comments.
...
llvm-svn: 94053
2010-01-21 00:08:17 +00:00
Fariborz Jahanian
e4951fdc4b
Also allow cast of block pointer type to
...
pointer to an any object. Another variation of
radar 7562285.
llvm-svn: 94052
2010-01-21 00:05:09 +00:00
Devang Patel
3f4a77e082
A Decl->getName() is not unique. However, the debug info descriptors
...
are uniqued. The debug info descriptor describing record's context is
necessary to keep two Decl's descriptor unique if their name match.
There is more work to do to create descriptors for DeclContext.
As a temp. step use type's name in FwdDecl.
llvm-svn: 94050
2010-01-20 23:56:40 +00:00
Fariborz Jahanian
4efdec0677
In objective-c++ land, a block pointer is another object pointer.
...
So, casting a generic object pointer ('id' or 'Class') to the
block pointer is allowed. Fixes radar 7562285.
llvm-svn: 94045
2010-01-20 22:54:38 +00:00
John McCall
401982f56c
First pass at collecting access-specifier information along inheritance paths.
...
Triggers lots of assertions about missing access information; fix them.
Will actually consume this information soon.
llvm-svn: 94038
2010-01-20 21:53:11 +00:00
Fariborz Jahanian
4f8a57112f
Settled rule on warning on unimplemented property in
...
category implementation when some implementations
are missing in the primary class implementation.
(fixes radar 6505200).
llvm-svn: 94014
2010-01-20 19:36:21 +00:00
Chris Lattner
6a89c50e23
reduce redundant are's
...
llvm-svn: 94009
2010-01-20 17:53:58 +00:00
Fariborz Jahanian
b36606aa71
Improve performance of warning when not implementing a required
...
property of a protocol (my previous patch). No change in functionality.
(radar 7544809).
llvm-svn: 94005
2010-01-20 17:27:59 +00:00