Benjamin Kramer
20bac07abb
Adjust testcase for recent AsmPrinter changes, sigh.
...
llvm-svn: 94307
2010-01-23 10:15:32 +00:00
Benjamin Kramer
b2abc13f28
Adjust testcase for recent DWARF printer changes.
...
llvm-svn: 94306
2010-01-23 10:14:58 +00:00
John McCall
6d174646dd
Produce a special diagnostic when users call a function with an argument of
...
incomplete type (or a pointer/reference to such).
The causes of this problem are different enough to justify a different "design"
for the diagnostic. Most notably, it doesn't give an operand index:
it's usually pretty obvious which operand is the problem, it adds a lot of
clutter to mention it, and the fix is usually in a different part of the file
anyway.
This is yet another diagnostic that should really have an analogue in the
non-overloaded case --- which should be much easier to write because of
the weaker space constraints.
llvm-svn: 94303
2010-01-23 08:10:49 +00:00
Anders Carlsson
8e01dcf6f6
Fix the EntityKind order so that all entity kinds that can be copied (using copy constructors) come first. Also, fix a bug where EK_New was left out of the err_init_conversion_failed diagnostic (It is now reported as 'new value'). Please review Doug :)
...
llvm-svn: 94289
2010-01-23 05:47:27 +00:00
John McCall
fe796ddd5a
During overload resolution diagnostics, sort non-viable candidates by the quality of their
...
conversions. To make this work, fill out all conversions for all candidates
(but only when diagnosing overload failure). Split out a few cases from
ovl_fail_bad_conversion which didn't actually involve a failed argument
conversion.
I'm pretty sure this is not a well-founded ordering, but I'm not sure it matters.
llvm-svn: 94283
2010-01-23 05:17:32 +00:00
Anders Carlsson
ed8d80d72b
Separate EK_ArrayOrVectorElement into EK_ArrayElement and EK_VectorElement; arrays and vectors are pretty different beasts in C++. Doug, please review/comment.
...
llvm-svn: 94279
2010-01-23 04:34:47 +00:00
David Chisnall
481e3a87fe
Created __builtin___NSStringMakeConstantString() builtin, which generates constant Objective-C strings.
...
llvm-svn: 94274
2010-01-23 02:40:42 +00:00
Ted Kremenek
4c0df3dc1d
Rename getClangFullVendorVersion() to getClangFullVersion().
...
llvm-svn: 94273
2010-01-23 02:11:34 +00:00
John McCall
553c0796ee
Implement elementary access control.
...
llvm-svn: 94268
2010-01-23 00:46:32 +00:00
Douglas Gregor
625a515120
Teach the cursor visitor to recurse into the type information of
...
explicit casts, sizeof, alignof, and compound literals.
llvm-svn: 94265
2010-01-23 00:40:08 +00:00
Daniel Dunbar
4c823ba358
Extern darwin-clang_rt.c test to also test targetting ARM ({armv6, armv7} x
...
{thumb,no-thumb}).
llvm-svn: 94264
2010-01-23 00:26:38 +00:00
Daniel Dunbar
c766b8a1f4
Fix a FIXME, this test folds to a constant now.
...
llvm-svn: 94263
2010-01-23 00:26:29 +00:00
Douglas Gregor
aa98ed9a07
Extend clang_createTranslationUnitFromSourceFile() to support creating
...
translation units that include unsaved files.
llvm-svn: 94258
2010-01-23 00:14:00 +00:00
Fariborz Jahanian
935f041243
outside a method, 'super' should resolve in a normal name look up
...
to mimic gcc's behavior. Fixes radar 7400691.
llvm-svn: 94246
2010-01-22 23:04:44 +00:00
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
Mike Stump
1891698a9b
Fixup the rest of the testcases to grep the .ll file instead of the .s
...
file, and add FIXMEs to the remaining broken tests.
llvm-svn: 94238
2010-01-22 22:37:17 +00:00
Fariborz Jahanian
60794cfa27
Fixes test.
...
llvm-svn: 94236
2010-01-22 22:30:25 +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
Douglas Gregor
6007cf2e9e
Improve content and structure of the Doxygen documentation for the
...
CIndex API. No functionality change.
llvm-svn: 94234
2010-01-22 22:29:16 +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
Mike Stump
3cd08d9df7
Convert more testcases to checking the .ll file instead of the .s file.
...
llvm-svn: 94229
2010-01-22 22:06:55 +00:00
Douglas Gregor
816fd36316
Yet more CIndex API cleanup:
...
- Added more routines to manipulate/compare source locations and ranges
- Switched clang_getCursor() over to take a CXSourceLocation rather
than file/line/column.
llvm-svn: 94226
2010-01-22 21:44:22 +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
Douglas Gregor
9ae8d349e6
Eliminate index-test; all of its tested functionality is now in c-index-test.
...
llvm-svn: 94211
2010-01-22 20:40:20 +00:00
Douglas Gregor
877524918a
Eliminate CIndex's dependency on the Clang Index library, since we
...
weren't actually using any of its facilities.
llvm-svn: 94210
2010-01-22 20:35:53 +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
d6f13c3ff9
Add a Coding Standards section to hacking.html, and point out that cstdio is forbidden.
...
llvm-svn: 94137
2010-01-22 02:04:46 +00:00
Daniel Dunbar
42e3df065e
Use raw_ostream instead of cstdio.
...
llvm-svn: 94136
2010-01-22 02:04:41 +00:00
Douglas Gregor
e1084fa2d2
Visit if, switch statements properly
...
llvm-svn: 94126
2010-01-22 01:00:11 +00:00
Douglas Gregor
d824f8825b
Teach the cursor visitor to walk all of the C and Objective-C
...
declarations that have enough source information to make such a walk
useful. This includes walking into variable initializers and enum
constants, the types behind typedefs, etc.
llvm-svn: 94124
2010-01-22 00:50:27 +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
Douglas Gregor
5e8cf37917
Teach the cursor visitor to walk statements and expressions, including
...
a few important subkinds. Now we're cookin' with gas!
llvm-svn: 94116
2010-01-21 23:27:09 +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
John McCall
1848ea4fe3
Due to local reversions and re-patching, I accidentally had multiple copies
...
of the 'payload' in this header.
llvm-svn: 94109
2010-01-21 22:59:41 +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
Douglas Gregor
6479fc4554
Teach the cursor visitor to walk into typeof types (both kinds). This
...
is hard to test now; tests will come when we can walk stataements and
expressions properly.
llvm-svn: 94099
2010-01-21 20:48:56 +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
Benjamin Kramer
2067816b3a
Revert r94073, it fails in Release-Asserts builds.
...
llvm-svn: 94089
2010-01-21 18:14:21 +00:00
Fariborz Jahanian
e344e41fed
Fixes a comment.
...
llvm-svn: 94088
2010-01-21 17:39:43 +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
Douglas Gregor
d182431968
Teach the cursor visitor to walk into a variety of different TypeLoc
...
kinds, so that we see referenced types, protocols, classes, etc.
llvm-svn: 94085
2010-01-21 17:29:07 +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
9e406b4b60
Add a test for clang_rt support on Darwin. With appropriate massaging, this
...
checks that the runtime library can be linked and works for compiling on 10.6
for 10.{4,5,6} targets. Currently test is only for x86, and misses some
compiler-rt functions.
llvm-svn: 94083
2010-01-21 17:10:39 +00:00
Daniel Dunbar
0b9c603ee2
Tweak OptionalTests paths.
...
llvm-svn: 94082
2010-01-21 17:09:39 +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
Daniel Dunbar
d723b01311
Add utils/OptionalTests, a dumping ground for additional (lit) tests which for
...
one reason or another don't belong in the regular test suite.
Inside is utils/OptionalTests/Extra which is specifically for tests that match
the layout of the regular tests.
llvm-svn: 94080
2010-01-21 16:55:39 +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
93f899509d
Introduce type references into the C API, capturing references to
...
typedefs only (for now).
llvm-svn: 94078
2010-01-21 16:28:34 +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
Benjamin Kramer
d2eba45be3
Match branch labels with the trailing colon so we don't accidentally match something else.
...
llvm-svn: 94073
2010-01-21 15:19:14 +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
Douglas Gregor
fed36b1aa1
Stash a CXXUnit pointer into each cursor. This allows us to simplify
...
the interface to clang_visitChildren() by eliminating the
CXTranslationUnit pointer.
llvm-svn: 94051
2010-01-20 23:57:43 +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
Douglas Gregor
58552bcd65
Eliminate the MakeCXCursor routines that require their callers to know too much about the cursor's storage
...
llvm-svn: 94049
2010-01-20 23:34:41 +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
Douglas Gregor
c8e390c215
Yet more Doxygen-comment tweaking in the CIndex library.
...
llvm-svn: 94044
2010-01-20 22:45:41 +00:00
Douglas Gregor
802f12f719
Improve Doxygen documentation for the CIndex library, somewhat.
...
llvm-svn: 94042
2010-01-20 22:28:27 +00:00
John McCall
97c5a140c2
Change LLVM/clang #includes to use quotes, not angle-brackets. Just a think-o
...
prompted by the #include <iterator> above.
llvm-svn: 94040
2010-01-20 22:16:29 +00:00
Douglas Gregor
721e82edbc
Kill CXEntity and CXDecl. The first has never been used, while the
...
second has been wholly replaced by cursors.
llvm-svn: 94039
2010-01-20 22:14:22 +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
Douglas Gregor
dd969c897e
Kill some CXDecl-related APIs that have been superceded by
...
CXCursor-based APIs.
llvm-svn: 94037
2010-01-20 21:45:58 +00:00
Douglas Gregor
2582af00d4
Kill CXStmt. It isn't being used anywhere, and has no future.
...
llvm-svn: 94036
2010-01-20 21:38:07 +00:00
Douglas Gregor
990b576ec8
Kill clang_loadDeclaration() and clang_loadTranslationUnit().
...
llvm-svn: 94034
2010-01-20 21:37:00 +00:00
Douglas Gregor
720d00553a
Switch c-index-test from clang_loadDeclaration() and
...
clang_loadTranslationUnit() over to clang_visitChildren().
llvm-svn: 94031
2010-01-20 21:32:04 +00:00
Douglas Gregor
befc4a1658
Switch the internals of clang_loadTranslationUnit() over to the new
...
cursor-based traversal, and eliminate TUVisitor. We're now down to one
visitor for traversing the AST. Yay!
llvm-svn: 94025
2010-01-20 21:13:59 +00:00
Daniel Dunbar
73118e6d82
Use sizeof() instead of hard-coding a size for WrittenBuiltinSpecs, eek!
...
llvm-svn: 94024
2010-01-20 21:13:31 +00:00
Douglas Gregor
71f3d94391
Introduce a new, cursor-based traversal function that visits the
...
children of a given cursor, regardless of what kind of cursor it
is. This is a generalization of clang_loadDeclaration and
clang_loadTranslationUnit that will also extent to statements,
expressions, etc.
As proof-of-concept, switched clang_loadDeclaration() from its own
visitor over to an instance of this traversal function internally.
llvm-svn: 94022
2010-01-20 20:59:29 +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
Benjamin Kramer
9c22cc800f
Make some helper functions static.
...
llvm-svn: 94004
2010-01-20 16:21:40 +00:00
Benjamin Kramer
c1a62aa67d
Don't store a Twine temporary, it's unsafe.
...
llvm-svn: 94003
2010-01-20 16:18:11 +00:00
Duncan Sands
37fe3ee2e2
Fix html glitch. Pointed out by clwi (PR6090).
...
llvm-svn: 94000
2010-01-20 12:40:56 +00:00
Zhongxing Xu
eb76a85af0
Correct comments.
...
llvm-svn: 93999
2010-01-20 07:57:45 +00:00
Chris Lattner
5e536d85ad
allow this test to pass, even with the recent .s printer changes.
...
Have I ever mentioned that clang regtests should not be grepping .s files??
llvm-svn: 93998
2010-01-20 07:45:09 +00:00
Chandler Carruth
4d9517c564
Fix a typo pointed about by gabor.
...
llvm-svn: 93997
2010-01-20 07:43:54 +00:00
Chandler Carruth
26b29a0892
Move the MacroBuilder utilitiy to its own header. Update references.
...
Comments and/or improvements to the documentation are welcome.
llvm-svn: 93982
2010-01-20 06:13:02 +00:00
Daniel Dunbar
415763612a
Fix an invalid Twine use spotty by abbeyj, it isn't safe to use Twine
...
temporaries (this is one reason I'm nervous about propagating their use beyond
particularly performance critical places).
llvm-svn: 93981
2010-01-20 06:09:53 +00:00
Chandler Carruth
5b6d9265ba
Actually remove the include that r93974 made unnecessary.
...
llvm-svn: 93975
2010-01-20 04:09:11 +00:00
Chandler Carruth
b0af340592
Fix a layering issue between Basic and FE by moving a utility class into Basic.
...
This isn't entirely satisfactory, as it seems an implementation detail, and
with nothing to do with TargetInfo. Suggestions on where to put this are
welcome.
llvm-svn: 93974
2010-01-20 03:59:11 +00:00
Zhongxing Xu
00c6046a81
Add a missing case for DeclContext printer.
...
llvm-svn: 93973
2010-01-20 03:21:28 +00:00
Daniel Dunbar
3f3e2cd820
Driver: Lift clang resource directory computation to the Driver object.
...
llvm-svn: 93971
2010-01-20 02:35:16 +00:00
Daniel Dunbar
e2b661c26c
clang/Darwin: Update for rename of 10.4 static runtime library.
...
llvm-svn: 93970
2010-01-20 02:35:02 +00:00
Mike Stump
06c1d87d14
Also handle CXXConstructor, CXXDestructor and CXXConversion in CFG
...
printing.
llvm-svn: 93968
2010-01-20 02:28:05 +00:00
Mike Stump
281d6d7745
Use the llvm coding convention for indentation for switch.
...
llvm-svn: 93966
2010-01-20 02:03:14 +00:00
Fariborz Jahanian
98609b3a07
Patch to implement required warnings for unimplemented
...
properties imported frfom protocol. Fixes radar 7544809.
llvm-svn: 93965
2010-01-20 01:51:55 +00:00
John McCall
1bcb2631e6
Make UnresolvedSet.h standalone.
...
llvm-svn: 93964
2010-01-20 01:36:13 +00:00
Mike Stump
845384a938
Wire up the EH context for the catch clauses to the outer EH context. WIP.
...
llvm-svn: 93963
2010-01-20 01:30:58 +00:00
Mike Stump
0bdba6cdd8
Add an exceptional edge from the try terminated block to the outer EH
...
context (try or the Exit block) when there isn't a catch (...).
Improve CFG printing for catch (...).
llvm-svn: 93962
2010-01-20 01:15:34 +00:00
Douglas Gregor
52606ff2ca
Attempt to improve CIndex Doxygen organization, although I can't actually test this locally
...
llvm-svn: 93961
2010-01-20 01:10:47 +00:00
John McCall
ad371258aa
Give UnresolvedSet the ability to store access specifiers for each declaration.
...
Change LookupResult to use UnresolvedSet. Also extract UnresolvedSet into its
own header and make it templated over an inline capacity.
llvm-svn: 93959
2010-01-20 00:46:10 +00:00
Douglas Gregor
b693f65c4d
Remove some #if 0'd code that's never going to get used.
...
llvm-svn: 93957
2010-01-20 00:34:08 +00:00
Mike Stump
06b602e540
Improve CheckFallThrough analysis in the presense of the new C++ EH
...
support. WIP.
llvm-svn: 93956
2010-01-20 00:34:04 +00:00
Douglas Gregor
9074c3fe97
Kill off clang_getDeclColumn, clang_getDeclExtent, clang_getDeclLine,
...
clang_getDeclSource, and clang_getDeclSourceFile; the cursor
equivalents are the way of the future.
llvm-svn: 93955
2010-01-20 00:26:57 +00:00
Douglas Gregor
d2fc7277be
Introduce a special cursor kind for the translation unit, to serve as
...
the root of the conceptual cursor hierarchy (just like we do with
declarations). This will be used when we get to unify
clang_loadTranslationUnit() and clang_loadDeclaration() into something
more generally useful.
llvm-svn: 93954
2010-01-20 00:23:15 +00:00
Douglas Gregor
c0943d089f
CXCursor_UnexposedDecl to the first declaration kind
...
llvm-svn: 93952
2010-01-20 00:07:45 +00:00
Chris Lattner
e87668db26
add support for Fedora 10 x86_64, there really should be a better way to handle this.
...
patch by Dmitry
llvm-svn: 93948
2010-01-19 23:30:00 +00:00
Douglas Gregor
084236fafd
Kill CXCursor_ObjCSelectorRef, CXCursor_VarRef, CXCursor_FunctionRef,
...
and CXCursor_EnumConstantRef; they've been subsumed by expression
references, which do a much nicer job.
llvm-svn: 93947
2010-01-19 23:25:01 +00:00
Douglas Gregor
8f40bbee78
Extend the CIndex API with direct support for expressions and
...
statements, moving some of the more unnatural kinds of references
(VarRef, EnumConstantRef, etc.) over to the expressions. We can now
poke at arbitrary expressions and statements with, e.g.,
clang_getCursor() and get back useful information (e.g., source
ranges).
llvm-svn: 93946
2010-01-19 23:20:36 +00:00
Mike Stump
314825bc8a
Implement goto inside of blocks.
...
llvm-svn: 93945
2010-01-19 23:08:01 +00:00
Eric Christopher
99469702a3
Update and move around comments.
...
llvm-svn: 93942
2010-01-19 22:58:35 +00:00
John McCall
5d7aa7fa0a
The type of a compound literal expression is not necessarily the same as the
...
type which was syntactically written. Fixes PR 6080.
llvm-svn: 93933
2010-01-19 22:33:45 +00:00
Douglas Gregor
7d1efeb43d
Kill the unused and unnecessary CXCursor_MemberRef, twin to the
...
now-dead CXCursor_ObjCIvarRef.
llvm-svn: 93928
2010-01-19 22:15:34 +00:00
Douglas Gregor
015026e358
Kill CXCursor_ObjCIvarRef. Such cursors could never be created, and
...
have been marked for death for a while.
llvm-svn: 93927
2010-01-19 22:11:32 +00:00
Douglas Gregor
accb183371
Introduce the notion of an "unexposed" declaration into the CIndex
...
API. This is a catch-all for any declaration known to Clang but not
specifically part of the CIndex API. We'll use the same approach with
expressions, statements, references, etc., as needed.
llvm-svn: 93924
2010-01-19 22:07:56 +00:00
Mike Stump
92244b00c7
Add CFG support for the start and end of scopes and infrastructure for
...
implicit destructor calls. WIP.
llvm-svn: 93922
2010-01-19 22:00:14 +00:00
Fariborz Jahanian
f3b9b9583e
Rewriteing of gnu extension __typeof in objective-c rewriter.
...
Fixes radar 6358225.
llvm-svn: 93917
2010-01-19 21:48:35 +00:00
Douglas Gregor
4f46e789b3
Rework the CXSourceLocation and CXSourceRange APIs. They are now
...
opaque data structures accessed through the new functions
clang_getInstantiationLocation(), clang_getRangeStart(), and
clang_getRangeEnd(). The new API permits later extensions to introduce
new functions to allow CIndex clients to walk macro instantiations, if
we ever care.
llvm-svn: 93915
2010-01-19 21:36:55 +00:00
Daniel Dunbar
3858ec4720
Don't try to build/install/clean compiler-rt stuff if it isn't in the projects directory.
...
llvm-svn: 93914
2010-01-19 21:28:04 +00:00
Daniel Dunbar
3779e1f49a
Initial cut at integrating compiler-rt (on Darwin) w/ clang build.
...
- compiler-rt should be checked out into $LLVM_SRC_ROOT/projects/compiler-rt.
- On Darwin, this will automatically build the runtime libraries clang needs
into $OBJROOT/lib/clang/<version>/darwin/...
- The mechanism can easily support other platforms, and can eventually support
multiple platforms once clang has some kind of configure process (for
specifying the desired targets).
- Feedback on the approach is welcome.
llvm-svn: 93910
2010-01-19 21:12:58 +00:00
Ted Kremenek
60983dc3ad
Tighten code and rework indentation of some if() branches (for readability). No functionality change.
...
llvm-svn: 93904
2010-01-19 20:52:05 +00:00
Ted Kremenek
1362b8bbe6
Remove extra space in uses of 'assert()'.
...
llvm-svn: 93903
2010-01-19 20:46:35 +00:00
Ted Kremenek
b27378c82f
Re-alphabetize cases in switch statement.
...
llvm-svn: 93902
2010-01-19 20:40:33 +00:00
Douglas Gregor
6b8232ff82
Eliminate cursor kinds used to express definitions. Instead, provide
...
CIndex functions that (1) map from a reference or declaration to the
corresponding definition, if available, and (2) determine whether a
given declaration cursor is also a definition. This eliminates a lot
of duplication in the cursor kinds, and maps more closely to the Clang
ASTs.
This is another API + ABI breaker with no deprecation. Yay, progress.
llvm-svn: 93893
2010-01-19 19:34:47 +00:00
Fariborz Jahanian
6d77a96111
objective-c test case for __attribute__((unused)) on method arguments.
...
llvm-svn: 93887
2010-01-19 18:39:17 +00:00
Fariborz Jahanian
c1d2fa5d48
Issue diagnostics (instead of crashing in code gen) when using
...
property dot-syntax notation to use setter/getters in objective-c.
Fixes radar 7553050.
llvm-svn: 93883
2010-01-19 17:48:02 +00:00
Benjamin Kramer
fb5f40f959
Avoid an instantiation of std::sort.
...
llvm-svn: 93882
2010-01-19 17:42:20 +00:00
Douglas Gregor
9abe2377e7
Teach Sema::ActOnDependentTemplateName that a dependent template name
...
in a member access expression referring into the current instantiation
need not be resolved at template definition *if* the current
instantiation has any dependent base classes. Fixes PR6081.
llvm-svn: 93877
2010-01-19 16:01:07 +00:00
Zhongxing Xu
7872d4df93
Add test case.
...
llvm-svn: 93874
2010-01-19 12:11:55 +00:00
Zhongxing Xu
cd17954dbe
Fix a serious bug: Tmp3 is the wrong destination set. We should create a new
...
intermediate destination set Tmp4.
llvm-svn: 93873
2010-01-19 09:25:53 +00:00
Douglas Gregor
e9f3ac7b1b
Another test case for PR6062
...
llvm-svn: 93872
2010-01-19 06:47:24 +00:00
Douglas Gregor
a3b624aa55
In a mem-initializer, a nested-name-specifier followed by an
...
identifier always names a type. In the case of a dependent
nested-name-specifier, build a TypenameType to describe the dependent
base type. I'd like to move more of this behavior up into the parser,
but this fixes PR6062.
llvm-svn: 93871
2010-01-19 06:46:48 +00:00
Douglas Gregor
5204248f96
When looking up enumerator names for redeclaration, use the
...
ForRedeclaration flag so that we don't look into base classes.
Fixes PR6061.
llvm-svn: 93862
2010-01-19 06:06:57 +00:00
Anders Carlsson
c68266f324
Update Xcode project.
...
llvm-svn: 93861
2010-01-19 06:04:24 +00:00
Mike Stump
bbf5ba66a9
Add try/catch CFG support. Also improve throw CFG support. WIP.
...
llvm-svn: 93840
2010-01-19 02:20:09 +00:00
Devang Patel
5e1a83c196
Emit human readable names for operators.
...
llvm-svn: 93837
2010-01-19 02:02:11 +00:00
Devang Patel
7a12ad0dc1
First cut at emitting debugging information for C++ member functions.
...
There is lot more work to do in this area.
llvm-svn: 93836
2010-01-19 01:54:44 +00:00
Ted Kremenek
bb1110a7ae
Fix possible memory leak by using an OwningPtr.
...
llvm-svn: 93834
2010-01-19 01:29:05 +00:00
Douglas Gregor
ad27e8b777
Introduce clang_getCursorReferenced, to get a cursor pointing at the
...
entity that a particular cursor references.
llvm-svn: 93830
2010-01-19 01:20:04 +00:00
Douglas Gregor
33c34ac19a
Implement clang_getCursorExtent, which provides a source range for the
...
cursor itself. In particular, for references this returns the source
range of the reference rather than the source range of the thing it
refers to.
Switch c-index-test from clang_getDeclExtent (which will eventually be
deprecated and removed) over to clang_getCursorExtent. The source
ranges we print for references now make sense; fix up the tests
appropriately.
llvm-svn: 93823
2010-01-19 00:34:46 +00:00
Devang Patel
757daca99c
Use llvm::Function name as the linkage name, but strip off leading '01' from display name.
...
llvm-svn: 93822
2010-01-19 00:25:12 +00:00
Devang Patel
889ce76f41
Refactor.
...
llvm-svn: 93814
2010-01-19 00:00:59 +00:00
Douglas Gregor
7ecd020cf2
Teach clang_getCursorLocation() to return the locations of references
...
rather than the locations that refer to.
llvm-svn: 93812
2010-01-18 23:41:10 +00:00
Devang Patel
ddf6a57f3e
llvm::Function name is the linkage name. If it has a '01' as a prefix then probably there is a reason.
...
llvm-svn: 93808
2010-01-18 23:27:28 +00:00
Ted Kremenek
7161fc1e2f
Tweak USR output for ObjC categories.
...
llvm-svn: 93805
2010-01-18 23:25:32 +00:00
John McCall
62e2066792
Move AccessSpecifier into the new Specifiers.h; fixes the layering violations
...
inherent in, well, pretty much every use of AccessSpecifier.
llvm-svn: 93804
2010-01-18 23:21:37 +00:00
Fariborz Jahanian
42ffdb32fb
Allow conversion of pointer to an objective-c pointer to
...
a similar pointer. Fixes radar 7552179.
llvm-svn: 93803
2010-01-18 22:59:22 +00:00
Douglas Gregor
3338c1f5d2
Now that a reasonable deprecation cycle has passed, kill
...
clang_getCursorLine(), clang_getCursorColumn(),
clang_getCursorSource(), and clang_getCursorSourceFile() outright.
llvm-svn: 93801
2010-01-18 22:48:04 +00:00
Douglas Gregor
66a58819d1
Introduce clang_getCursorLocation(), which supercedes
...
clang_getCursorLine(), clang_getCursorColumn(),
clang_getCursorSource(), and clang_getCursorSourceFile(). Mark those 4
functions as deprecated and stop using them ourselves.
llvm-svn: 93800
2010-01-18 22:46:11 +00:00
Ted Kremenek
80de67b0cf
Refactor USR generation for TagDecls into a common method.
...
llvm-svn: 93799
2010-01-18 22:42:20 +00:00
Chris Lattner
87d0208c41
allow the HandlerComment callback to push tokens into the
...
preprocessor. This could be used by an OpenMP implementation
or something. Patch by Abramo Bagnara!
llvm-svn: 93795
2010-01-18 22:35:47 +00:00
Chris Lattner
f406b2402d
simplify the code for skipping in a #if 0 block. The CurLexer
...
pointer is always non-null because the PTH case exits earlier
in the method.
llvm-svn: 93794
2010-01-18 22:33:01 +00:00
Douglas Gregor
49c4baf430
Clean up the CIndex API slightly.
...
Renamed CXSourceFileLine to CXSourceLocation and added a CXFile, to
better match Clang's SourceLocation. Teach clang_getDeclExtent to fill
in the CXFile properly.
Renamed CXSourceExtent to CXSourceRange, to better match Clang's
SourceLocation.
llvm-svn: 93783
2010-01-18 22:13:09 +00:00
Ted Kremenek
0ea923c550
Explicitly not handle ObjCForwardProtocolDecl in GetCursorKind().
...
llvm-svn: 93779
2010-01-18 22:07:45 +00:00
Ted Kremenek
a6980af2d2
Tweak USR generation to handle anonymous bitfields.
...
llvm-svn: 93778
2010-01-18 22:02:49 +00:00
Daniel Dunbar
c02aaa7812
Add missing newline.
...
llvm-svn: 93767
2010-01-18 20:55:52 +00:00
Douglas Gregor
c35b54396c
float, double, and long double do need extra data in the
...
BuiltinTypeLoc structure. Thanks, Enea!
llvm-svn: 93763
2010-01-18 20:37:56 +00:00
Ted Kremenek
473c7a72f1
Replace clang_getDeclUSR() with clang_getCursorUSR(). Also remove printing 'contexts' from c-index-test output; it wasn't helpful and was extremely brittle.
...
llvm-svn: 93760
2010-01-18 20:23:29 +00:00
John McCall
e15bbff98d
Preserve type source information in compound literal expressions.
...
Patch by Enea Zaffanella!
llvm-svn: 93752
2010-01-18 19:35:47 +00:00
Douglas Gregor
9a48db1659
Print fix-it hints properly around tabs, from Christian Adåker!
...
llvm-svn: 93750
2010-01-18 19:28:01 +00:00
Daniel Dunbar
6bc5be24fa
Remove ../libexec from clang program search path, clang-cc is dead.
...
llvm-svn: 93749
2010-01-18 19:16:53 +00:00
Mike Stump
211ed4826e
Silence a control reaches end of function warning. Patch by Enea
...
Zaffanella.
llvm-svn: 93743
2010-01-18 18:41:43 +00:00
Fariborz Jahanian
cdb8575c9b
Mostly renaming some methods and updating comments to
...
reflect what these methods are actually doing. One method
template for future work. No change in functionality.
llvm-svn: 93742
2010-01-18 18:41:16 +00:00
Douglas Gregor
fb00d93c98
Make CMake's clang++ installation respect DESTDIR, based on a patch by
...
Ingmar Vanhassel. Fixes PR6046.
llvm-svn: 93741
2010-01-18 18:27:29 +00:00
Douglas Gregor
c9b7a59b30
Improve source-location information for builtin TypeLocs, from Enea
...
Zaffanella (with a couple of my tweaks).
llvm-svn: 93733
2010-01-18 18:04:31 +00:00
Daniel Dunbar
e2aa06d4ae
Don't build/install clang++ in CLANG_IS_PRODUCTION build mode yet.
...
llvm-svn: 93732
2010-01-18 17:52:48 +00:00
Daniel Dunbar
fadf43c2ae
Fix -Asserts warning.
...
llvm-svn: 93731
2010-01-18 17:52:42 +00:00
Daniel Dunbar
e3b3d7a5e4
Fix race condition in creating objdir.
...
llvm-svn: 93730
2010-01-18 17:52:37 +00:00
Douglas Gregor
8c94086c90
Encoding calling conventions in the type system, from Charles Davis!
...
llvm-svn: 93726
2010-01-18 17:14:39 +00:00
Anders Carlsson
07894e8a0e
More VTT builder fixes. With these fixes we now correctly handle the very complex VTT example from the Itanium ABI spec.
...
llvm-svn: 93725
2010-01-18 17:13:59 +00:00
Zhongxing Xu
228b0d4def
Add support for computing size in elements for symbolic regions obtained from
...
malloc().
llvm-svn: 93722
2010-01-18 08:54:31 +00:00
Anders Carlsson
3d1a09552c
Move some common code into BuildVTT.
...
llvm-svn: 93710
2010-01-18 04:45:46 +00:00
Anders Carlsson
1af3df854f
Fix a bunch of VTT layout bugs, add simple tests for VTT layout.
...
llvm-svn: 93709
2010-01-18 04:25:18 +00:00
Zhongxing Xu
5fcd99b10f
Add test case for pr6069.
...
llvm-svn: 93708
2010-01-18 04:01:40 +00:00
Anders Carlsson
25933d4ecd
Update virt.cpp for changes to the LLVM asm printer (?) This test should really be all LLVM IR...
...
llvm-svn: 93707
2010-01-18 03:58:13 +00:00
Zhongxing Xu
e2bdb9a6e2
If the symbol has not been tracked, do not free it. This is possible when free
...
is called on a pointer that does not get its value directly from malloc.
llvm-svn: 93706
2010-01-18 03:27:34 +00:00
Anders Carlsson
827b245fd6
Minor VTT builder cleanup, no functionality change.
...
llvm-svn: 93696
2010-01-17 23:53:20 +00:00
Anders Carlsson
42f1376f35
Get the ctor vtable address points directly from the VTT builder.
...
llvm-svn: 93681
2010-01-17 17:10:44 +00:00
Nuno Lopes
28b40ddbe8
PR6055: fix FreeBSD c++ include path. patch by Roman Divacky
...
llvm-svn: 93668
2010-01-17 00:00:11 +00:00
Douglas Gregor
7f792cf329
Introduce a second queue of "local" pending implicit instantiation,
...
which are instantiations of the member functions of local
classes. These implicit instantiations have to occur at the same time
as---and in the same local instantiation scope as---the enclosing
function, since the member functions of the local class can refer to
locals within the enclosing function. This should really, really fix PR5764.
llvm-svn: 93666
2010-01-16 22:29:39 +00:00
Sam Weinig
d01101e2d7
Add PCH support for CXXStaticCastExpr, CXXDynamicCastExpr, CXXReinterpretCastExpr, CXXConstCastExpr and CXXFunctionalCastExpr.
...
llvm-svn: 93658
2010-01-16 21:21:01 +00:00
Douglas Gregor
edf8f39003
While determining when to parse inline member functions of a class,
...
distinguish between nested classes (whose member functions cannot be
parsed until the innermost non-nested class is complete) and local
classes (that are defined within a function but are not necessarily
nested). The upshot of this change, which fixes PR5764, is that the
bodies of member functions of local (non-nested) classes need to be
parsed when the local class is complete (and no later), since they may
refer to function-local static variables, typedefs, enums, etc.
llvm-svn: 93653
2010-01-16 20:52:59 +00:00
Douglas Gregor
f5974fa0d5
When we are instantiating a member function of a local class, be sure
...
to merge the local instantiation scope with the outer local
instantiation scope, so that we can instantiate declarations from the
function owning the local class. Fixes an assert while instantiating
Boost.MPL's BOOST_MPL_ASSERT_MSG.
llvm-svn: 93651
2010-01-16 20:21:20 +00:00
Fariborz Jahanian
faf85c0dbe
Fix a rewriting crash and correct rewriting of __block
...
declaration where its initializer has a type-cast.
llvm-svn: 93650
2010-01-16 19:36:43 +00:00
Douglas Gregor
27aa77ac08
Improve the test for unused-expression warnings slightly
...
llvm-svn: 93644
2010-01-16 18:17:21 +00:00
Douglas Gregor
e1ad8a105a
Partial fix for PR6022, where we were complaining when a friend
...
function template declared within a class template did not match a
function in another scope. We really need to rework how
friends-in-templates are semantically checked.
llvm-svn: 93642
2010-01-16 18:09:52 +00:00
Douglas Gregor
46d6614388
Give ObjCClassRef cursors a sane representation, which is encapsulated
...
in CXCursor.cpp. With this sane representation, fix the class
reference that is part of Objective-C category declarations so that
the cursor's location matches up with the reference, not the class
being referred to.
llvm-svn: 93640
2010-01-16 17:14:40 +00:00
Douglas Gregor
071676f422
Improve location information for Objective-C category declarations. We
...
previously only had a single location (the @ in @interface); now we
know where the @ is (for the start of the declaration), where the
class name is (that's the normal "location" now for diagnostics), and
where the category name is. Also, eliminated the redundant "end"
location, since ObjCContainerDecl already has better @end information.
The only XFAIL'd test is temporary; will un-XFAIL-it once I've taught
CIndex how to use the new locations.
llvm-svn: 93639
2010-01-16 16:38:58 +00:00
Douglas Gregor
ef6eb84da1
Use a sane encoding for CXCursor_ObjCProtocolRef, using the actual
...
source locations where the protocols were referenced rather than the
location of some random enclosing declaration.
llvm-svn: 93637
2010-01-16 15:44:18 +00:00
Douglas Gregor
002b671055
Keep track of the source locations for each protocol reference in
...
Objective-C classes, protocol definitions, forward protocol
declarations, and categories. This information isn't actually used
yet; that's coming next.
llvm-svn: 93636
2010-01-16 15:02:53 +00:00
Douglas Gregor
6c8959b71b
Give CXCursor_ObjCSuperClassRef a sane encoding, which is only known
...
to CXCursor.cpp.
llvm-svn: 93634
2010-01-16 14:00:32 +00:00
John McCall
982adb518c
Fix a use of uninitialized memory in overload diagnostics.
...
llvm-svn: 93629
2010-01-16 03:50:16 +00:00
Ted Kremenek
13751dc571
Add mapping from ObjCPropertDecl to CXCursorKind.
...
llvm-svn: 93623
2010-01-16 02:08:29 +00:00
Ted Kremenek
4ba5263441
Remove 'default' case in switch statement in clang_getCursorKindSpelling(). This identified a missing case (warned by the compiler) and identified that CXCursor_FirstDecl didn't actually correspond to the first decl.
...
llvm-svn: 93622
2010-01-16 02:02:09 +00:00
Ted Kremenek
9cec00019a
Remove TranslateKind and centralize Decl -> CXCursorKind in GetCursorKind(). This revealed a bunch of inconsistencies in how CXCursorKinds were being computed.
...
llvm-svn: 93618
2010-01-16 01:44:12 +00:00
Tanya Lattner
dbfd16014a
Add codgen for BI__builtin_llvm_memory_barrier.
...
llvm-svn: 93611
2010-01-16 01:21:14 +00:00
Tanya Lattner
68c7113944
The codegen for these builtins was removed long ago, but their definitions remained. Removing them totally.
...
llvm-svn: 93607
2010-01-16 01:10:51 +00:00
Eli Friedman
8fdc2cb46a
Fix crash generating debug info for constructor for anonymous struct.
...
llvm-svn: 93601
2010-01-16 00:43:13 +00:00
Ted Kremenek
c2aa0f1ecb
Migrate Decl* -> cursorkind logic into CXCursor.cpp, and drastically tighten TUVisitor.
...
llvm-svn: 93599
2010-01-16 00:36:30 +00:00
Eli Friedman
1fcf66b0dd
Make the AST explicitly represent the cast of the first operand of a
...
pointer-to-member operator.
llvm-svn: 93592
2010-01-16 00:00:48 +00:00
Ted Kremenek
10dd6e9ca5
Remove unused code.
...
llvm-svn: 93586
2010-01-15 23:35:12 +00:00
Ted Kremenek
6b1d550d4b
Refactor USR logic for EnumDecls and RecordDecls so that both handle 'anonymous' declarations in the same way.
...
llvm-svn: 93585
2010-01-15 23:34:31 +00:00
Mike Stump
ea409449aa
Generalize handling for unreachable code warnings to all binary operators.
...
llvm-svn: 93584
2010-01-15 23:33:51 +00:00
John McCall
3712d9e391
Candidates with arity mismatches are extra-special non-viable and need to
...
stand at the back of the line.
Thanks to Oliver Hunt for reminding me to do this.
llvm-svn: 93583
2010-01-15 23:32:50 +00:00
Mike Stump
d4d6fb3374
Refine location reporting for unreachable code warnings for comma expressions.
...
llvm-svn: 93574
2010-01-15 23:17:13 +00:00
Ted Kremenek
a7f7b17bc7
USR generation: look at the typedef of an anonymous struct (if any) when trying to generate a USR.
...
llvm-svn: 93572
2010-01-15 23:08:25 +00:00
Fariborz Jahanian
f0462ff691
define __weak to null in rewritten source for
...
-fms-extensions as well.
llvm-svn: 93569
2010-01-15 22:29:39 +00:00
Douglas Gregor
c58d05bcf9
Make CXCursor's data opaque.
...
llvm-svn: 93561
2010-01-15 21:56:13 +00:00
John McCall
7fe6e9c2f1
Make LookupResult::resolveKind() robust against NotFoundInCurrentInstantiation.
...
Fixes PR 6049.
llvm-svn: 93557
2010-01-15 21:27:01 +00:00
Ted Kremenek
87553c42c0
Add CXCursor.[h,cpp]. These files will centralize the logic for creating/probing CXCursors.
...
llvm-svn: 93547
2010-01-15 20:35:54 +00:00
Eli Friedman
cab014721b
Fix a couple bugs in copy assignment operator synthesis.
...
llvm-svn: 93546
2010-01-15 20:06:11 +00:00
Ted Kremenek
8433d1da5e
Add USR generation for enums.
...
llvm-svn: 93543
2010-01-15 20:04:31 +00:00
Douglas Gregor
082c3e69eb
Add -cursor-at=file:line:column command line option to c-index-test,
...
to directly check the results of clang_getCursor(). Also, start
migrating some index-test tests over to c-index test [*] and some
grep-using tests over to FileCheck.
llvm-svn: 93537
2010-01-15 19:40:17 +00:00
John McCall
d377e04489
Preserve type source information for C++ named casts through template
...
instantiation.
llvm-svn: 93533
2010-01-15 19:13:16 +00:00
John McCall
ebe5474148
Don't lose type source information when rebuilding C-style cast expressions.
...
Also we don't need to recheck for altivec initializers, I think.
llvm-svn: 93529
2010-01-15 18:56:44 +00:00
John McCall
9751396d70
Preserve type source information in explicit cast expressions.
...
Patch by Enea Zaffanella.
llvm-svn: 93522
2010-01-15 18:39:57 +00:00
Ted Kremenek
63b15c3af7
getLocationFromCursor: If a cursor is a reference and has a referringDecl, using the referringDecl for the location.
...
llvm-svn: 93520
2010-01-15 18:24:18 +00:00
Fariborz Jahanian
5c26eeefdd
Do not do the block-specific rewrite when there is no block literals.
...
Fixes radar 7546096.
llvm-svn: 93519
2010-01-15 18:14:52 +00:00
Douglas Gregor
5fcb51c09c
When determining whether a DeclRefExpr is value-dependent when it
...
references a const variable of integral type, the initializer may be
in a different declaration than the one that name-lookup saw. Find the
initializer anyway. Fixes PR6045.
llvm-svn: 93514
2010-01-15 16:21:02 +00:00
Douglas Gregor
27b174f4c3
When determining whether the type is the current instantiation, strip
...
qualifiers. Fixes PR6021.
llvm-svn: 93513
2010-01-15 16:05:33 +00:00
Ken Dyck
02990837ad
Convert the type of the LValue offset variable in APValue to CharUnits, moving
...
the LValue-related methods of APValue out of line to avoid header file leaching.
llvm-svn: 93512
2010-01-15 12:37:54 +00:00
John McCall
38836f0f39
Don't repeat lookup when instantiating resolved member expressions.
...
Adjust BuildMemberReferenceExpr to perform the inheritance check on implicit
member accesses, which can arise from unqualified lookups and therefore may
reference decls from enclosing class scopes.
Fixes PR 5838.
llvm-svn: 93510
2010-01-15 08:34:02 +00:00
Ted Kremenek
abf6ba1612
Don't suggest the developer use 'arc4random' instead of 'rand' when that function is not available. Fixes PR 6012.
...
llvm-svn: 93508
2010-01-15 08:20:31 +00:00
Ted Kremenek
d74cc397c8
Teach BugReporter to "escape" the occurance of '%' characters in diagnostic messages when emitted results to the standard Diagnostics output. Fixes PR 6033.
...
llvm-svn: 93507
2010-01-15 07:56:51 +00:00
Ted Kremenek
959990b840
Convert a few more uses of std::string& to llvm::StringRef.
...
llvm-svn: 93506
2010-01-15 07:43:59 +00:00
Mike Stump
dec5a39ea5
Add testcase for recent checkin.
...
llvm-svn: 93503
2010-01-15 03:15:36 +00:00
Mike Stump
6a11229dc8
Refine unreachable warnings. WIP.
...
llvm-svn: 93500
2010-01-15 02:06:42 +00:00
Douglas Gregor
d0d2ee0e4b
When performing qualified name lookup into the current instantiation,
...
do not look into base classes if there are any dependent base
classes. Instead, note in the lookup result that we couldn't look into
any dependent bases. Use that new result kind to detect when this case
occurs, so that we can fall back to treating the type/value/etc. as a
member of an unknown specialization.
Fixes an issue where we were resolving lookup at template definition
time and then missing an ambiguity at template instantiation time.
llvm-svn: 93497
2010-01-15 01:44:47 +00:00
Mike Stump
fc4daba5e0
Fix Release-Asserts for the time being.
...
llvm-svn: 93493
2010-01-15 00:50:35 +00:00
Fariborz Jahanian
195ac2dfab
Patch to avoid duplicate declaration of byref structs
...
for __block variables of same name declared in multiple scopes.
Fixes radar 7540194
llvm-svn: 93474
2010-01-14 23:05:52 +00:00
Devang Patel
2d63010a9c
Emit linkage name even if it matches regular name. The code generator uses linkage name to find subprogram entry for the current function.
...
llvm-svn: 93461
2010-01-14 21:46:57 +00:00
Anton Korobeynikov
485810ec0a
Forgot to commit these
...
llvm-svn: 93458
2010-01-14 21:36:52 +00:00
Chris Lattner
0b534d5969
fix grammaro
...
llvm-svn: 93452
2010-01-14 21:00:58 +00:00
Anton Korobeynikov
6bedbf1039
long long is 64 bits on msp430
...
llvm-svn: 93451
2010-01-14 20:22:45 +00:00
John McCall
8cb7a8a39c
Pre-emptive bugfixes in the diagnostics code: allow arbitrary punctuation
...
characters to be escaped and implement a scan-forward function which
properly respects brace nesting.
llvm-svn: 93447
2010-01-14 20:11:39 +00:00
Ted Kremenek
91df0ec92c
Simplify test case. This test case also applies to PR 6013.
...
llvm-svn: 93444
2010-01-14 19:47:50 +00:00
Ted Kremenek
b9ad45ab60
Associate test case with Bugzilla PR.
...
llvm-svn: 93440
2010-01-14 19:38:41 +00:00
John McCall
98757030a4
Document the extensions I made to the diagnostics-formatting system yesterday.
...
llvm-svn: 93439
2010-01-14 19:12:17 +00:00
Douglas Gregor
04b1152aac
After dyn_cast'ing, it generally makes sense to check the *output* of
...
the dyn_cast against NULL rather than the *input*. Fixes PR6025.
llvm-svn: 93435
2010-01-14 18:13:22 +00:00
Devang Patel
ea84f59f5c
Add comment.
...
llvm-svn: 93434
2010-01-14 18:06:13 +00:00
Douglas Gregor
d2e6a45722
When qualified lookup into the current instantiation fails (because it
...
finds nothing), and the current instantiation has dependent base
classes, treat the qualified lookup as if it referred to an unknown
specialization. Fixes PR6031.
llvm-svn: 93433
2010-01-14 17:47:39 +00:00
Douglas Gregor
fc59ce1ea4
Switch a few callers of MaybeAddResult over to AddResult, when the
...
declarations we're adding do not need any name-hiding checks.
llvm-svn: 93431
2010-01-14 16:14:35 +00:00
Douglas Gregor
2b8162b7d0
Switch code-completion's ivar lookup over to LookupVisibleDecls,
...
eliminating yet one more ResultBuilder::MaybeAddResult caller.
llvm-svn: 93430
2010-01-14 16:08:12 +00:00
Douglas Gregor
78a210145b
Start migrating code-completion results from
...
ResultBuilder::MaybeAddResult over to ResultBuilder::AddResult.
llvm-svn: 93429
2010-01-14 16:01:26 +00:00
Douglas Gregor
09bbc651f4
Switch the remaining code completions over to LookupVisibleDecls,
...
after adding the ability to determine whether our lookup is a
base-class lookup. Eliminate CollectMemberLookupResults, since it is
no longer used (yay).
llvm-svn: 93428
2010-01-14 15:47:35 +00:00
David Chisnall
035ead209f
Made ObjC method name mangling match GCC (which does it in a stupid and broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling).
...
llvm-svn: 93427
2010-01-14 14:08:19 +00:00
Zhongxing Xu
803ade2532
Fix pr6035.
...
llvm-svn: 93422
2010-01-14 03:45:06 +00:00
Douglas Gregor
200c99dd1e
Move code completion for qualified name lookup (foo::) to
...
LookupVisibleDecls. Also, a function does not hide another function.
llvm-svn: 93421
2010-01-14 03:35:48 +00:00
John McCall
4700099719
Improve overload diagnostics some more by calling out qualifier mismatches
...
for special diagnostics. Unfortunately, the non-overload diagnostics are not
this good.
llvm-svn: 93420
2010-01-14 03:28:57 +00:00
Douglas Gregor
a6e2edcc3a
Eliminate the code-completion-specifier CollectLookupResults in favor
...
of the more general LookupVisibleDecls.
llvm-svn: 93419
2010-01-14 03:27:13 +00:00
Douglas Gregor
6ae4c5278c
Simplify the code-completion logic for nested-name-specifiers: rather
...
than traversing visible declarations twice, only perform one traversal
and recognize nested-name-specifiers as special.
llvm-svn: 93418
2010-01-14 03:21:49 +00:00
Mike Stump
0a7d9305f1
Don't assume a random access iterator, instead just use CFG::iterator.
...
Thanks Ted.
llvm-svn: 93413
2010-01-14 02:45:29 +00:00
Anders Carlsson
5f9a881e1e
Store the address points for constructor vtables directly in the VTT builder, because that's the only time they're needed.
...
llvm-svn: 93412
2010-01-14 02:29:07 +00:00
Mike Stump
29ce3a3114
Avoid snowballing errors into additional warnings. To do better, we'd
...
need an error term for the CFG. I suspect we'll always have to cope
with getCFG returning 0, though, I'd love to see even that possibility
removed.
llvm-svn: 93411
2010-01-14 02:26:52 +00:00
Ted Kremenek
e34cbde383
Switch return site to use clang_getNullCursor().
...
llvm-svn: 93405
2010-01-14 01:51:23 +00:00
Ted Kremenek
e1b5525510
Further tweak USR generation by shorting names and distinguish between namespaces and functions.
...
llvm-svn: 93404
2010-01-14 01:50:21 +00:00
Anders Carlsson
2a4adbea96
Add a DenseMapInfo specialization for BaseSubobject.
...
llvm-svn: 93399
2010-01-14 01:39:42 +00:00
Douglas Gregor
69a8e083c5
When providing completions for a member access expression in C++,
...
provided nested-name-specifier results for base classes (only), rather
than everything that could possibly be a nested-name-specifier.
llvm-svn: 93398
2010-01-14 01:17:14 +00:00
Douglas Gregor
c580c5205f
Switch code-completion for ordinary names over to the new(ish)
...
LookupVisibleDecls, unifying the name lookup mechanisms used by code
completion and typo correction. Aside from the software-engineering
improvements, this makes code-completion see through using directives
and see ivars when performing unqualified name lookup in an
Objective-C instance method.
llvm-svn: 93397
2010-01-14 01:09:38 +00:00
John McCall
a1709fd822
Improve the diagnostic for bad conversions in overload resolution to talk
...
about 'object argument' vs. 'nth argument'.
llvm-svn: 93395
2010-01-14 00:56:20 +00:00
John McCall
9015cde4dc
Add the %ordinal format modifier for turning '1' into '1st'. Hard-coded for
...
English right now; would not be impossible to grab a special format string
from the diagnostic pool and localize that way.
llvm-svn: 93390
2010-01-14 00:50:32 +00:00
Devang Patel
4274a326be
Because CurLoc is the current source location as far as CGDebugInfo is concerned. It is expected that this is set (usually left bracket location of function body compound statement) before EmitfunctionStart() is used.
...
llvm-svn: 93389
2010-01-14 00:48:09 +00:00
Douglas Gregor
e0717ab39c
More refactoring of ResultBuilder::MaybeAddResult. No intended
...
functionality change.
llvm-svn: 93386
2010-01-14 00:41:07 +00:00
Devang Patel
934661ed73
Emit human readable names for c/c++ functions. Avoid emitting linkage name if it matches regular name.
...
llvm-svn: 93383
2010-01-14 00:36:21 +00:00
Fariborz Jahanian
e2dd5428e6
Fix a bug in rewrite whereby functions using blocks put extern "C" in wrong place.
...
Fixes radar 7284618.
llvm-svn: 93382
2010-01-14 00:35:56 +00:00
Douglas Gregor
7c208616b4
Refactor the "is this declaration interesting" logic in
...
code-completion's ResultBuilder::MaybeAddResult for later reuse.
llvm-svn: 93379
2010-01-14 00:20:49 +00:00
Douglas Gregor
0235c4243f
Look through using declarations when determining whether one decl hides another
...
llvm-svn: 93378
2010-01-14 00:06:47 +00:00
John McCall
e4d5432136
Perform format-expansion on %select results.
...
llvm-svn: 93377
2010-01-13 23:58:20 +00:00
Douglas Gregor
f98e6a28e4
Banish the notion of a "rank" for code-completion results, since we
...
are no longer using it for anything. No intended functionality change.
llvm-svn: 93376
2010-01-13 23:51:12 +00:00
Douglas Gregor
52ce62f069
Improve the sorting of code-completion results. We now always sort by
...
the "typed" text, first, then take into account
nested-name-specifiers, name hiding, etc. This means that the
resulting sort is actually alphabetical :)
llvm-svn: 93370
2010-01-13 23:24:38 +00:00
John McCall
e8c8cd2a58
Don't report ambiguities in the user-defined conversion if we weren't supposed
...
to be considering user-defined conversions in the first place.
Doug, please review; I'm not sure what we should be doing if we see a real
ambiguity in selecting a copy constructor when otherwise suppressing
user-defined conversions.
Fixes PR6014.
llvm-svn: 93365
2010-01-13 22:30:33 +00:00
John McCall
02bc54d11c
Don't a.k.a. through the primary typedef of an anonymous tag decl.
...
llvm-svn: 93362
2010-01-13 22:07:44 +00:00
Douglas Gregor
48d462573d
Code-completion for @public, @protected, @private, @package.
...
llvm-svn: 93361
2010-01-13 21:54:15 +00:00
Ted Kremenek
d5c6eafe09
Reorganize CIndex.cpp into clearer sections of functions, and add a utility function 'MakeCXCursor' to centralize the logic for creating CXCursor objects.
...
llvm-svn: 93359
2010-01-13 21:46:36 +00:00
Fariborz Jahanian
d0bbf66895
Fixes a rewrite bug rewriting a block call argument which has a trvial
...
constructor. Fixes radar 7537770.
llvm-svn: 93358
2010-01-13 21:41:11 +00:00
Douglas Gregor
f193416359
Whenever completing ordinary names for an Objective-C source, also
...
provide completions for @ keywords. Previously, we only provided
@-completions after an @ was actually typed, which is useful but
probably not the common case.
Also, make sure a few Objective-C 2.0 completions only show up when
Objective-C 2.0 support is enabled (the default).
llvm-svn: 93354
2010-01-13 21:24:21 +00:00
Mike Stump
6f0bf82622
Fix Release-Asserts.
...
llvm-svn: 93353
2010-01-13 21:23:04 +00:00
Mike Stump
8521f06ced
Fix for Release-Assert.
...
llvm-svn: 93348
2010-01-13 20:58:35 +00:00
Mike Stump
2f7b246a47
Fix for Release-Asserts.
...
llvm-svn: 93347
2010-01-13 20:57:29 +00:00
Mike Stump
5c1e7259f1
Fix Release-Asserts.
...
llvm-svn: 93346
2010-01-13 20:43:31 +00:00
Anders Carlsson
20871481d2
Add a BaseSubobject class to uniquely identify a base class subobject. Not yet used.
...
llvm-svn: 93345
2010-01-13 20:11:15 +00:00
John McCall
e8595036c4
Add type source information for both kinds of typeof types.
...
Patch by Enea Zaffanella.
llvm-svn: 93344
2010-01-13 20:03:27 +00:00
Ted Kremenek
e14e372b67
Add 'referringDecl' field to CXCursor to prepare the way to better model declaration references from other delcarations.
...
llvm-svn: 93343
2010-01-13 19:59:20 +00:00
Mike Stump
92d487712e
Fix for Release-Asserts.
...
llvm-svn: 93340
2010-01-13 19:40:37 +00:00
Fariborz Jahanian
3f7b8b274d
Predefine __weak attribute when doing objective-c
...
rewriting for any target. (refixes radar 7530235).
llvm-svn: 93331
2010-01-13 18:51:17 +00:00
Ted Kremenek
95ae5e16b9
Add extra null check in clang_disposeString().
...
llvm-svn: 93328
2010-01-13 18:45:36 +00:00
Douglas Gregor
9de54ea41b
Reimplement constructor declarator parsing to cope with template-ids
...
that name constructors, the endless joys of out-of-line constructor
definitions, and various other corner cases that the previous hack
never imagined. Fixes PR5688 and tightens up semantic analysis for
constructor names.
Additionally, fixed a problem where we wouldn't properly enter the
declarator scope of a parenthesized declarator. We were entering the
scope, then leaving it when we saw the ")"; now, we re-enter the
declarator scope before parsing the parameter list.
Note that we are forced to perform some tentative parsing within a
class (call it C) to tell the difference between
C(int); // constructor
and
C (f)(int); // member function
which is rather unfortunate. And, although it isn't necessary for
correctness, we use the same tentative-parsing mechanism for
out-of-line constructors to improve diagnostics in icky cases like:
C::C C::f(int); // error: C::C refers to the constructor name, but
// we complain nicely and recover by treating it as
// a type.
llvm-svn: 93322
2010-01-13 17:31:36 +00:00
Douglas Gregor
b89b99f1f2
Fix pasto in __has_feature(cxx_lambdas) docs
...
llvm-svn: 93320
2010-01-13 16:27:49 +00:00
John McCall
6a61b5203d
Record some basic information about bad conversion sequences. Use that
...
information to feed diagnostics instead of regenerating it. Much room for
improvement here, but fixes some unfortunate problems reporting on method calls.
llvm-svn: 93316
2010-01-13 09:16:55 +00:00
Alexis Hunt
c88db06565
Implement semantic checking for C++ literal operators.
...
This now rejects literal operators that don't meet the requirements.
Templates are not yet checked for.
llvm-svn: 93315
2010-01-13 09:01:02 +00:00
Alexis Hunt
10e2f7264e
Update test function names so as not to use potential keywords.
...
llvm-svn: 93314
2010-01-13 08:58:42 +00:00
Alexis Hunt
af4e28d897
Add a bunch more feature-checking macros for C++0x features. Some of these are
...
disabled with the intent that users can start with them now and not have to change
a thing to have them work when we implement the features.
llvm-svn: 93312
2010-01-13 08:31:49 +00:00
John McCall
6d11e07b16
Insert clang-flags into the clang command. Currently it needs to be a list;
...
future work should permit strings (by splitting them into a list o' strings).
llvm-svn: 93299
2010-01-13 06:44:51 +00:00
Chris Lattner
3d756f1a9e
diagnose invalid values of -ftabstop, patch by Christian Adaker!
...
llvm-svn: 93288
2010-01-13 03:06:50 +00:00
Mike Stump
1bacb81d6f
Add an unreachable code checker.
...
llvm-svn: 93287
2010-01-13 02:59:54 +00:00
Daniel Dunbar
4f2bc55d4e
cc1: Factor out CompilerInstance::ExecuteAction which has the majority of the
...
clang -cc1 logic for running an action against a set of options.
- This should make it easier to build tools that have a clang -cc1 like
interface, but aren't actually part of clang -cc1.
llvm-svn: 93282
2010-01-13 00:48:06 +00:00
Daniel Dunbar
7d38d4da61
cc1: Lift creation of the FrontendAction higher.
...
llvm-svn: 93281
2010-01-13 00:47:51 +00:00
John McCall
e1ac8d1742
Improve the reporting of non-viable overload candidates by noting the reason
...
why the candidate is non-viable. There's a lot we can do to improve this, but
it's a good start. Further improvements should probably be integrated with the
bad-initialization reporting routines.
llvm-svn: 93277
2010-01-13 00:25:19 +00:00
Ted Kremenek
78668fdcfb
Move definitions for visitor methods in CDeclVisitor out-of-line.
...
llvm-svn: 93276
2010-01-13 00:22:49 +00:00
Ted Kremenek
1351b09b04
Make method definitions in TUVisitor out-of-line, making it easy to tell what visitor methods are defined.
...
Generalize TUVisitor to take a general "root" and "iterator" callback; this is prep. work to merging TUVisitor and CDeclVisitor.
llvm-svn: 93275
2010-01-13 00:13:47 +00:00
Douglas Gregor
08dc584c3f
Remove broken fix-it when a default function argument has been
...
redefined. There's a FIXME with an apology about why we don't try to
do better here. Fixes <rdar://problem/7513023>.
llvm-svn: 93274
2010-01-13 00:12:48 +00:00
Fariborz Jahanian
6fada5be91
When in objective-c methods, do the built-in name lookup after
...
ivar name lookup. Fixes pr5986.
llvm-svn: 93271
2010-01-12 23:58:59 +00:00
Ted Kremenek
58a6a8ec62
Add USR printing modes to c-index-test.
...
llvm-svn: 93269
2010-01-12 23:34:26 +00:00
Ted Kremenek
a188cbbf29
Make clang_getDeclUSR() visible.
...
llvm-svn: 93268
2010-01-12 23:34:05 +00:00
Ted Kremenek
cb674f9492
Rename clang_getUSR() -> clang_getDeclUSR(). For now we take a CXDecl instead of a CXEntity.
...
Enhance USR generation a bit with support for records.
llvm-svn: 93267
2010-01-12 23:33:42 +00:00
Douglas Gregor
49862b8285
Don't emit string-comparison or self-comparison warnings in
...
unevaluated contexts, because they only matter for code that will
actually be evaluated at runtime.
As part of this, I had to extend PartialDiagnostic to support fix-it
hints.
llvm-svn: 93266
2010-01-12 23:18:54 +00:00
Mike Stump
4b0e352061
Remove unused code.
...
llvm-svn: 93262
2010-01-12 22:20:00 +00:00
Chris Lattner
0c523e513a
testcase for -ftabstop, patch by Christian Adaker!
...
llvm-svn: 93260
2010-01-12 22:06:58 +00:00
Chris Lattner
7011795ee4
use DiagRuntimeBehavior to silence the div/rem by zero warning when
...
not in an evaluated context. This removes some bogus warnings.
llvm-svn: 93258
2010-01-12 21:30:55 +00:00
Douglas Gregor
18473f329d
Improve recovery for template-ids whose template-name doesn't actually
...
name a template, when they occur in a base-specifier. This is one of
the (few) places where we know for sure that an identifier followed by
a '<' must be a template name, so we can diagnose and recover well:
test/SemaTemplate/dependent-base-classes.cpp:9:16: error: missing
'template'
keyword prior to dependent template name 'T::apply'
struct X1 : T::apply<U> { }; // expected-error{{missing 'template' ...
^
template
test/SemaTemplate/dependent-base-classes.cpp:12:13: error: unknown
template name
'vector'
struct X2 : vector<T> { }; // expected-error{{unknown template name
'vector'}}
^
2 diagnostics generated.
llvm-svn: 93257
2010-01-12 21:28:44 +00:00
Chris Lattner
faa5417264
implement PR6004, warning about divide and remainder by zero.
...
llvm-svn: 93256
2010-01-12 21:23:57 +00:00
Chris Lattner
20aee9b914
implement PR6007, diagnosing invalid attribute((section))
...
llvm-svn: 93255
2010-01-12 20:58:53 +00:00
Mike Stump
a77e48c322
Improve covariance tester to randomize the return value more.
...
llvm-svn: 93254
2010-01-12 20:55:39 +00:00
Chandler Carruth
04bdce6407
Fix the CodeGen half of PR5911 by changing reference initialization to
...
correctly look through arrays to see cv-qualifiers. Also enhances the routine
for doing this to preserve more type sugaring for diagnostics.
llvm-svn: 93252
2010-01-12 20:32:25 +00:00
Ted Kremenek
55e3e83b07
Further tweaking of USR generation. WIP.
...
llvm-svn: 93250
2010-01-12 19:35:53 +00:00
Ted Kremenek
73eccd2c10
Make 'CXTranslationUnitIterator' an argument to perform_test_load(),
...
perform_test_load_tu(), and perform_test_load_source().
llvm-svn: 93248
2010-01-12 18:53:15 +00:00
Fariborz Jahanian
42c06998ea
Define __weak attribute for objective-c pointers in
...
win32 targets. Fixes radar 7530235. Daniel please review.
llvm-svn: 93246
2010-01-12 18:33:57 +00:00
Douglas Gregor
46c59614d3
Parse dependent template-ids in base clauses and member
...
initializers. This isn't actually in the C++ grammar (in any version),
but that's clearly an oversight: both GCC and EDG support this syntax,
and it's used within Boost code. I'll file a core issue proposing
precisely the change made here. Fixes PR6008.
llvm-svn: 93243
2010-01-12 17:52:59 +00:00
Fariborz Jahanian
12e2e86f0f
Improve on objective-c pointer recognition
...
during rewrite. No functionality chang.
llvm-svn: 93241
2010-01-12 17:31:23 +00:00
Douglas Gregor
c119dd50c2
When determining whether a given name is a template in a dependent
...
context, do not attempt typo correction. This harms performance (as
Abramo noted) and can cause some amusing errors, as in this new
testcase.
llvm-svn: 93240
2010-01-12 17:06:20 +00:00
Benjamin Kramer
d815825c7d
Fix tests for r93231.
...
llvm-svn: 93238
2010-01-12 11:52:20 +00:00
Benjamin Kramer
59617be4a5
Remove trailing semicolons and silence MSVC warning about C linkage.
...
warning C4190: 'GetEntity' has C-linkage specified, but returns UDT
'clang::idx::Entity' which is incompatible with C
llvm-svn: 93237
2010-01-12 11:32:40 +00:00
John McCall
ad907777e8
So I was sitting around, trying vainly to think of something to commit, and then
...
I said to myself, self, why don't you go add a couple of parameters to a method
and then fail to use them, and I thought that sounded like a pretty good idea,
so I did it.
llvm-svn: 93233
2010-01-12 07:18:19 +00:00
Douglas Gregor
6a80393385
Use horizontal-space markers in code-completion results rather than
...
embedding single space characters. <rdar://problem/7485503>
llvm-svn: 93231
2010-01-12 06:38:28 +00:00
Mike Stump
edd224743c
Add covariance tester.
...
llvm-svn: 93226
2010-01-12 03:01:18 +00:00
Daniel Dunbar
abd3686f49
Remove duplicate class name, MSVC doesn't like this.
...
llvm-svn: 93225
2010-01-12 02:34:07 +00:00
John McCall
53262c96d9
Reorganize some of the code to note overload candidates. Improves the
...
fidelity with which we note them as functions/constructors and templates
thereof. Also will be helpful when reporting bad conversions (next).
llvm-svn: 93224
2010-01-12 02:15:36 +00:00
Ted Kremenek
5631d2d1a1
Add a boilerplate implementation for clang_getUSR(). WIP.
...
llvm-svn: 93223
2010-01-12 02:07:58 +00:00
Fariborz Jahanian
5951609ac2
Fix rewriting of MacOS sjlj based eh.
...
Fixes radar 7522880.
llvm-svn: 93219
2010-01-12 01:22:23 +00:00
Douglas Gregor
3c96a46fc3
Name lookup should know better than to look into a class before it's defined
...
llvm-svn: 93217
2010-01-12 01:17:50 +00:00
John McCall
c54cf7373f
Chris thinks these diagnostics are better now. :)
...
llvm-svn: 93216
2010-01-12 01:09:12 +00:00
John McCall
ad2587a394
Sort overload results by viability.
...
llvm-svn: 93215
2010-01-12 00:48:53 +00:00
John McCall
0d1da2298a
Introduce a specific representation for the ambiguous implicit conversion
...
sequence. Lots of small relevant changes. Fixes some serious problems with
ambiguous conversions; also possibly improves associated diagnostics.
llvm-svn: 93214
2010-01-12 00:44:57 +00:00
Ted Kremenek
87be3617e3
Change clang_getUSR() to return a CXString instead of a 'const char *'.
...
llvm-svn: 93213
2010-01-12 00:38:53 +00:00
Ted Kremenek
46157971e9
Make createCXString() a static member function of class CIndex.
...
llvm-svn: 93212
2010-01-12 00:36:38 +00:00
Mike Stump
ee6dfe55a5
Allow N_FIELDS to be 0.
...
llvm-svn: 93211
2010-01-12 00:28:59 +00:00
Ted Kremenek
e5f86be138
CIndex:
...
- Remove unused (and unimplemented) clang_getDeclarationName().
- Remove unused (and unimplemented) clang_getEntity().
- Add clang_getEntityFromDecl(): maps from a CXDecl to a CXEntity)
- Add clang_getDeclaration(): maps from a (CXEntity, CXTranslationUnit) to a CXDecl).
llvm-svn: 93209
2010-01-11 23:56:39 +00:00
Douglas Gregor
411e5acce1
Eliminate an embarrassing performance regression in C/ObjC, where we
...
were performing name lookup for template names in C/ObjC and always
finding nothing. Turn off such lookup unless we're in C++ mode, along
with the check that determines whether the given identifier is a
"current class name", and assert that we don't make this mistake
again.
llvm-svn: 93207
2010-01-11 23:29:10 +00:00
David Chisnall
a354f12be2
Reverted r93198; done without reading relevant PR.
...
llvm-svn: 93205
2010-01-11 23:08:08 +00:00
Fariborz Jahanian
1c2cb6df9e
Fix rewriting for forward class declaration.
...
(fixes radar 6969189).
llvm-svn: 93201
2010-01-11 22:48:40 +00:00
Douglas Gregor
88f3eb898a
When performing name lookup into a scope, check that its entity is
...
non-NULL before looking at the entity itself.
llvm-svn: 93199
2010-01-11 22:40:45 +00:00
David Chisnall
394bf0d0ba
Allow VLAs in C++ if in GNU mode (GNU C++ permits them). Clang can now compile LanguageKit, although the resulting code crashes (although not in any of the functions that use VLAs).
...
llvm-svn: 93198
2010-01-11 22:33:19 +00:00
Douglas Gregor
d615026e8d
C++0x [dcl.typedef]p4, take 3, where we actually figure out what "that
...
is not also a typedef-name" actually means. For anyone keeping score,
that's John: 2, Doug: 0.
llvm-svn: 93196
2010-01-11 22:30:10 +00:00
Douglas Gregor
323ade5ac8
Use isa<ElaboratedType> rather than getAs<ElaboratedType>, since the
...
latter may (eventually) perform multiple levels of desugaring (thus
breaking the newly-added tests) and the former is faster. Thanks, John!
llvm-svn: 93192
2010-01-11 22:04:54 +00:00
Douglas Gregor
7419ce72ae
Add test case from PR5763
...
llvm-svn: 93190
2010-01-11 21:58:49 +00:00
Douglas Gregor
9dd13ab202
Allow redefinitions of typedef-names within class scope when the type
...
they redefine is a class-name but not a typedef-name, per C++0x
[dcl.typedef]p4. The code in the test was valid C++98 and is valid
C++0x, but an unintended consequence of DR56 made it ill-formed in
C++03 (which we were luck enough to implement). Fixes PR5455.
llvm-svn: 93188
2010-01-11 21:54:40 +00:00
Fariborz Jahanian
2990c029ad
Fix a problem related to rewrite of anonymous unions.
...
(fixes radar 6948022)
llvm-svn: 93186
2010-01-11 21:17:32 +00:00
Benjamin Kramer
378083101c
Fix pasto.
...
llvm-svn: 93181
2010-01-11 20:15:06 +00:00
Chris Lattner
e3e76e2a69
Use the new isInteger() method in a couple places, some random cleanup, and
...
add a fixme.
llvm-svn: 93179
2010-01-11 19:58:10 +00:00
Douglas Gregor
b90b66178e
When resolving a single function template specialization to a
...
function, be sure to adjust the resulting argument type to a pointer
(if necessary). Fixes PR5910 and PR5949.
llvm-svn: 93178
2010-01-11 19:55:36 +00:00
Douglas Gregor
0662b16ad2
Test case for naming of conversion function template specializations
...
llvm-svn: 93177
2010-01-11 19:52:23 +00:00
Benjamin Kramer
0129bd7432
Avoid use of deprecated functions (CStrInCStrNoCase and StringsEqualNoCase).
...
llvm-svn: 93175
2010-01-11 19:46:28 +00:00
Douglas Gregor
2159182078
When computing surrogates for calls to a value of object type, look
...
for all visible conversion functions.
llvm-svn: 93173
2010-01-11 19:36:35 +00:00
Ken Dyck
de37a67f50
Change return type of getObjCEncodingTypeSize() to CharUnits as the units are in characters.
...
llvm-svn: 93171
2010-01-11 19:19:56 +00:00
David Chisnall
c8fc573ea0
Fix type mismatch on 64-bit platforms (GNU ObjC).
...
llvm-svn: 93169
2010-01-11 19:02:35 +00:00
Douglas Gregor
217604ac71
Remove some pointless FIXMEs. No functionality change
...
llvm-svn: 93168
2010-01-11 19:00:50 +00:00
Douglas Gregor
133bc74d7a
Add support for out-of-line definitions of conversion function
...
templates. Previously, a little thinko in the code that replaced a
conversion function template with its redeclaration was causing some
very weird lookup behavior.
llvm-svn: 93166
2010-01-11 18:53:25 +00:00
Douglas Gregor
bb91767b82
Tighten up the "cannot return array or function type" diagnostic to
...
say either "array type" or "function type", whichever it is. No reason
to make the user guess.
llvm-svn: 93164
2010-01-11 18:46:21 +00:00
Douglas Gregor
ea0a0a9b3f
Implement name lookup for conversion function template specializations
...
(C++ [temp.mem]p5-6), which involves template argument deduction based
on the type named, e.g., given
struct X { template<typename T> operator T*(); } x;
when we call
x.operator int*();
we perform template argument deduction to determine that T=int. This
template argument deduction is needed for template specialization and
explicit instantiation, e.g.,
template<> X::operator float*() { /* ... */ }
and when calling or otherwise naming a conversion function (as in the
first example).
This fixes PR5742 and PR5762, although there's some remaining ugliness
that's causing out-of-line definitions of conversion function
templates to fail. I'll look into that separately.
llvm-svn: 93162
2010-01-11 18:40:55 +00:00
Fariborz Jahanian
9146e44124
Fixup rewrite of ivars accessed via an explicit object
...
in a function. Fixes radar 7522803.
llvm-svn: 93159
2010-01-11 17:50:35 +00:00
Ken Dyck
40775003e6
Roll out ASTContext::getTypeSizeInChars(), replacing instances of
...
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
2010-01-11 17:06:35 +00:00
Sebastian Redl
9a8dd0db89
Make Clang complain about taking the address of an unqualified member function. Fixes PR5985.
...
llvm-svn: 93150
2010-01-11 15:56:56 +00:00
Zhongxing Xu
e47550e452
Enhance ScanReachableSymbols::scan(). Now another OSAtomic test case passes.
...
The old test case has a little mistake.
llvm-svn: 93148
2010-01-11 07:40:00 +00:00
Zhongxing Xu
cbbf855432
Enhance SVals::getAsRegion: get the region that is converted to an integer.
...
This with previous patch fixes a OSAtomic test case.
llvm-svn: 93146
2010-01-11 06:52:53 +00:00
Chris Lattner
21d9b9a948
add a TODO for a perf improvement in LexIdentifier.
...
llvm-svn: 93141
2010-01-11 02:38:50 +00:00
Ted Kremenek
be909b5eff
Switch RegionStore over to using <BaseRegion+raw offset> to store
...
value bindings. Along with a small change to OSAtomicChecker, this
resolves <rdar://problem/7527292> and resolves some long-standing
issues with how values can be bound to the same physical address by
not have the same "key". This change is only a beginning; logically
RegionStore needs to better handle loads from addresses where the
stored value is larger/smaller/different type than the loaded value.
We handle these cases in an approximate fashion now (via
CastRetrievedVal and help in SimpleSValuator), but it could be made
much smarter.
llvm-svn: 93137
2010-01-11 02:33:26 +00:00
Ted Kremenek
8e994a2808
Preliminary reworking of value-binding logic in RegionStore:
...
(1) Introduce a new 'BindingKey' class to match 'BindingValue'. This
gives us the flexibility to change the current key value from 'const
MemRegion*' to something more interesting.
(2) Rework additions/removals/lookups from the store to use new
'Remove', 'Add', 'Lookup' utility methods.
No "real" functionality change; just prep work and abstraction.
llvm-svn: 93136
2010-01-11 00:07:44 +00:00
Alexis Hunt
91b78382b5
Do not parse hexadecimal floating point literals in C++0x mode because they are
...
incompatible with user-defined literals, specifically with the following form:
0x1p+1
The preprocessing-number token extends only as far as the 'p'; the '+' is not
included. Previously we could get away with this extension as p was an invalid
suffix, but now with user-defined literals, 'p' might well be a valid suffix
and we are forced to consider it as such.
This patch also adds a warning in non-0x C++ modes telling the user that
this extension is incompatible with C++0x that is enabled by default
(previously and with other languages, we warn only with a compliance
option such as -pedantic).
llvm-svn: 93135
2010-01-10 23:37:56 +00:00
Douglas Gregor
504a6ae83e
Improve code completion by introducing patterns for the various C and
...
C++ grammatical constructs that show up in top-level (namespace-level)
declarations, member declarations, template declarations, statements,
expressions, conditions, etc. For example, we now provide a pattern
for
static_cast<type>(expr)
when we can have an expression, or
using namespace identifier;
when we can have a using directive.
Also, improves the results of code completion at the beginning of a
top-level declaration. Previously, we would see value names (function
names, global variables, etc.); now we see types, namespace names,
etc., but no values.
llvm-svn: 93134
2010-01-10 23:08:15 +00:00
Ted Kremenek
ec144538ae
Make sure this test case tests analyzing both x86_64 and i386 archs.
...
llvm-svn: 93133
2010-01-10 22:31:25 +00:00
Benjamin Kramer
e056cea3a6
Silence MSVC warning.
...
RewriteObjC.cpp(4419) : warning C4804: '>' : unsafe use of type 'bool' in operation
llvm-svn: 93124
2010-01-10 19:57:50 +00:00
Anton Korobeynikov
3d364fddda
Make clone() method out-of-line for Attr classes.
...
llvm-svn: 93120
2010-01-10 14:38:13 +00:00
Anton Korobeynikov
b322c3a34b
Try to make cmake happy
...
llvm-svn: 93119
2010-01-10 13:06:34 +00:00
Anton Korobeynikov
55bcea1e65
Generalize target weirdness handling having proper layering in mind:
...
1. Add helper class for sema checks for target attributes
2. Add helper class for codegen of target attributes
As a proof-of-concept - implement msp430's 'interrupt' attribute.
llvm-svn: 93118
2010-01-10 12:58:08 +00:00
Anton Korobeynikov
89b14a4309
Rename file to generalization in next commits
...
llvm-svn: 93117
2010-01-10 12:57:30 +00:00
Benjamin Kramer
307c2c7ebc
Simplify code. No functionality change.
...
llvm-svn: 93114
2010-01-10 09:51:00 +00:00
Zhongxing Xu
9635f6f5ef
Enhance test case.
...
llvm-svn: 93101
2010-01-10 02:52:56 +00:00
Chris Lattner
d081f8c851
stringref'ize a bunch of filename handling logic. Much
...
nicer than passing around two const char*'s.
llvm-svn: 93094
2010-01-10 01:35:12 +00:00
Chris Lattner
e0d2e342b3
try to make this more stable?
...
llvm-svn: 93090
2010-01-10 00:59:17 +00:00
Daniel Dunbar
d281a7146a
Fix PR5982, a refacto in checking for '=' in a -D argument.
...
llvm-svn: 93088
2010-01-10 00:46:21 +00:00
Daniel Dunbar
620327d66b
Fix a FIXME.
...
llvm-svn: 93087
2010-01-10 00:46:10 +00:00
Daniel Dunbar
1c4788b66b
Darwin/ld: Don't pass '-weak_reference_mismatches non-weak' when
...
-weak_reference_mismatches is not present, it is the default.
llvm-svn: 93086
2010-01-10 00:46:00 +00:00