Fariborz Jahanian
37c6417949
objc: fixed enum type is supported in objc mode.
...
Fixes a bug where enumerator type is not this
fixed type. // rdar://10381507
llvm-svn: 143724
2011-11-04 18:51:24 +00:00
Richard Smith
fe5354b945
Clean up C++11 constant expression testing.
...
llvm-svn: 143720
2011-11-04 18:32:57 +00:00
Devang Patel
45124500bb
Add new test.
...
llvm-svn: 143706
2011-11-04 17:12:03 +00:00
Devang Patel
f1faeefb32
Add new test.
...
llvm-svn: 143704
2011-11-04 16:57:26 +00:00
Argyrios Kyrtzidis
d2b9112354
[arcmt] For GC, cleanup and turn -finalize to -dealloc.
...
llvm-svn: 143701
2011-11-04 15:58:22 +00:00
Argyrios Kyrtzidis
d8cdfbc905
[arcmt] In GC, error for use of CFMakeCollectable because it will leak the
...
object that it receives in ARC.
llvm-svn: 143700
2011-11-04 15:58:17 +00:00
Argyrios Kyrtzidis
3eaa22af57
In C++ keep unavailable function calls in the AST, like in C/ObjC.
...
This allows the migrator to visit and fix them.
llvm-svn: 143699
2011-11-04 15:58:13 +00:00
Argyrios Kyrtzidis
d208ef95aa
[arcmt] In GC, transform NSMakeCollectable to CFBridgingRelease.
...
llvm-svn: 143698
2011-11-04 15:58:08 +00:00
Benjamin Kramer
62144477eb
Remove unused variables.
...
llvm-svn: 143696
2011-11-04 15:05:51 +00:00
Chandler Carruth
4c81dfacbb
Sink the strange '-stdlib=...' flag handling into the C++ include
...
handling logic of the generic ToolChain. This flag, despite its name,
has *nothing* to do with the GCC flag '-nostdlib' that relates
(exclusively) to the linking behavior. It is a most unfortunate name in
that regard...
It is used to tell InitHeaderSearch.cpp *which* set of C++ standard
library header search paths to use -- those for libstdc++ from GCC's
installation, or those from a libc++ installation. As this logic is
hoisted out of the Frontend, and into the Driver as part of this
ToolChain, the generic method will be overridden for the platform, where
it can implement this logic directly. As such, hiding the CC1 option
passing in the generic space is a natural fit despite the odd naming.
Also, expand on the comments to clarify whats going on, and tidy up the
Tools.cpp code now that its simpler.
llvm-svn: 143687
2011-11-04 07:43:33 +00:00
Chandler Carruth
491db32444
Sink the handling of -fobjc-arc-cxxlib to live with the other -fobjc-arc
...
implementation in the driver. This cleans up the signature and semantics
of the include flag adding component of the toolchain. Another step to
ready it for holding all the InitHeaderSearch logic.
llvm-svn: 143686
2011-11-04 07:34:47 +00:00
Chandler Carruth
9802c1406f
Add a FIXME to cleanup the CPATH handling. It's currently burried with
...
the rest of the mess in InitHeaderSearch.cpp. We could hoist it into the
driver profitably, removing more noise from the driver -> frontend
communication.
llvm-svn: 143685
2011-11-04 07:12:58 +00:00
Chandler Carruth
6bfd84f25d
Add a system include management interface to the toolchain, and call it
...
and the C++ include management routine from the proper place when
forming preprocessor options in the driver. This is the first step to
teaching the driver to manage all of the header search paths. Currently,
these methods remain just stubs in the abstract toolchain. Subsequent
patches will flesh them out with implementations for various toolchains
based on the current code in InitHeaderSearch.cpp.
llvm-svn: 143684
2011-11-04 07:12:53 +00:00
Richard Smith
ed5165ff52
Constant expression evaluation: refactor to start the groundwork for coping with
...
initializations which refer indirectly to elements of the object being
initialized.
llvm-svn: 143680
2011-11-04 05:33:44 +00:00
Richard Smith
96e0c101fe
Constant expression evaluation: track the manner in which an lvalue was written,
...
to allow us to implement the C++11 rule that a non-active union member can't be
read, and use it to implement subobject access for string literals.
llvm-svn: 143677
2011-11-04 02:25:55 +00:00
Richard Smith
e9e20dd302
Constant expression evaluation: although we don't know whether a literal will
...
be at the same address as another object, we do know it won't alias a null
pointer.
llvm-svn: 143674
2011-11-04 01:10:57 +00:00
Richard Trieu
364ee42ee8
In the AST dump, add a space between the type and value for CharacterLiteral.
...
llvm-svn: 143667
2011-11-03 23:56:23 +00:00
Akira Hatanaka
f3879ee666
Use a single integer type for a sub-doubleword part of a byval structure.
...
llvm-svn: 143666
2011-11-03 23:31:00 +00:00
Eli Friedman
3d9f47fe6f
Fix alignment on alloca's for parameters using ABIArgInfo::Expand.
...
llvm-svn: 143658
2011-11-03 21:39:02 +00:00
Chad Rosier
52d00e4815
Parse the warning options twice. The first pass sets diagnostic state, while
...
the second pass reports warnings/errors. This has the effect that we follow
the more canonical "last option wins" paradigm when there are conflicting
options.
rdar://10383776
Previously, we parsed the warning options in order. This caused non-intuitive
behavior:
1) clang test.c -Wnosuchwarning -Wno-unknown-warning-option
Before:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
1 warning generated.
After:
[0 warning generated.]
2) clang test.c -Wnosuchwarning -Werror=unknown-warning-option
Before:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
1 warning generated.
After:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]
3) clang test.c -Werror=unknown-warning-option -Wnosuchwarning -Wno-error=unknown-warning-option -Wnosuchwarning
Before:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
After:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
2 warnings generated.
4) clang test.c -Werror=unknown-warning-option -Wnosuchwarning -Wno-error=unknown-warning-option -Wno-unknown-warning-option -Wnosuchwarning
Before:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]
After:
[0 warning generated.]
llvm-svn: 143657
2011-11-03 21:23:39 +00:00
Argyrios Kyrtzidis
462ff35d44
After resetting the diagnostic state, set the number of warning occurring in the preamble.
...
llvm-svn: 143647
2011-11-03 20:57:33 +00:00
Eli Friedman
eadd3e81a0
Fix the alignment on scalar parameter variables so that it matches what the AST thinks it should be. Per report on cfe-dev.
...
llvm-svn: 143645
2011-11-03 20:31:28 +00:00
Argyrios Kyrtzidis
f50f7b2c65
[libclang] Fix crash when a #pragma diagnostic is included in the preamble.
...
A PCH file keeps track of #pragma diagnostics state; when loading the preamble, they conflicted
with the #pragma diagnostic state already present in the DiagnosticsEngine object due to
parsing the preamble.
Fix this by clearing the state of the DiagnosticsEngine object.
Fixes rdar://10363572 && http://llvm.org/PR11254 .
llvm-svn: 143644
2011-11-03 20:28:19 +00:00
Douglas Gregor
7f763f1018
Force test to use the non-fragile ABI
...
llvm-svn: 143642
2011-11-03 19:58:50 +00:00
Argyrios Kyrtzidis
52d87a6f82
[libclang] Move CursorVisitor to its own header.
...
llvm-svn: 143639
2011-11-03 19:02:34 +00:00
Argyrios Kyrtzidis
04cf92fe7c
[libclang] Make sure pointing inside the #include of the fields will return the struct.
...
llvm-svn: 143638
2011-11-03 19:02:30 +00:00
Argyrios Kyrtzidis
3cefc9d742
[libclang] Use CursorVisitor::Visit instead of invoking the visitor directly.
...
llvm-svn: 143637
2011-11-03 19:02:28 +00:00
Argyrios Kyrtzidis
deb47d17dd
[libclang] Add a test for "targeting" a field inside an #include that only
...
contains fields.
llvm-svn: 143636
2011-11-03 19:01:07 +00:00
Douglas Gregor
21ceb18429
Extend IsSimplyAccessible to check for Objective-C instance variable
...
accessibility. Fixes <rdar://problem/3727335>.
llvm-svn: 143635
2011-11-03 19:00:24 +00:00
Douglas Gregor
f8b02cabca
Fix grammaro
...
llvm-svn: 143633
2011-11-03 18:33:01 +00:00
Douglas Gregor
3c2404b31b
Teach the ASTImporter to import DefinitionData bits.
...
llvm-svn: 143631
2011-11-03 18:07:07 +00:00
Douglas Gregor
3b52b69ccd
Class can't be null in this context
...
llvm-svn: 143618
2011-11-03 17:41:55 +00:00
Douglas Gregor
03ba1887f0
Refactor Sema::IsSimplyAccessible slightly, to work on a DeclContext rather than a class
...
llvm-svn: 143615
2011-11-03 16:51:37 +00:00
Douglas Gregor
dd847baadd
When we're checking a friend function template in an out-of-line class
...
definition, we may not have a scope corresponding to the namespace
where that friend function template actually lives. Work around this
issue by faking up a scope with the appropriate DeclContext.
This is a bit of a hack, but it fixes <rdar://problem/10204947>.
llvm-svn: 143614
2011-11-03 16:37:14 +00:00
Argyrios Kyrtzidis
7ca77357ce
[libclang] Add missing return in clang_getExpansionLocation that resulted in that function
...
always returning a null file/line/column.
Also add at least one use of clang_getExpansionLocation inside c-index-test that would have
made the tests to catch that.
llvm-svn: 143606
2011-11-03 02:20:36 +00:00
Argyrios Kyrtzidis
e968152564
[libclang] Add infrastructure to be able to only deserialize decls in a file region and
...
use it for clang_getCursor.
llvm-svn: 143605
2011-11-03 02:20:32 +00:00
Argyrios Kyrtzidis
cb373e3f31
[libclang] For c-index-test disable caching of code completion results if
...
the CINDEXTEST_COMPLETION_NO_CACHING environment variable is present.
llvm-svn: 143604
2011-11-03 02:20:25 +00:00
Jan Wen Voung
180319f72d
Do not add "byval" attribute to records with non-trivial copy constructors
...
and destructors in the DefaultABIInfo.
llvm-svn: 143601
2011-11-03 00:59:44 +00:00
Douglas Gregor
2e10cf9620
Add a printing policy flag to suppress printing "<anonymous>::" prior
...
to types. Enable this flag for code completion, where knowing whether
something is in an anonymous or inline namespace is actually not
useful, since you don't have to type it anyway. Fixes
<rdar://problem/10208818>.
llvm-svn: 143599
2011-11-03 00:16:13 +00:00
Akira Hatanaka
756ce7f9ab
Set MinABIStackAlignInBytes to 8 if ABI is N32/64.
...
llvm-svn: 143597
2011-11-03 00:05:50 +00:00
Akira Hatanaka
101f70da7c
Convert the type of a structure passed by value if it has double precision
...
fields in order to ease handling of such structures in backend.
llvm-svn: 143596
2011-11-02 23:54:49 +00:00
Douglas Gregor
e7f0675672
Test code completion for constructor initializers within the class
...
definition. This already worked; <rdar://problem/10208871>.
llvm-svn: 143595
2011-11-02 23:39:56 +00:00
Akira Hatanaka
1437852c38
Return function results whose size is smaller than 128-bits in registers if ABI
...
is N32/64.
llvm-svn: 143589
2011-11-02 23:14:57 +00:00
Eli Friedman
d1370791c2
Use native endianness for writing out character escapes to the result buffer for string literal parsing. No functional change on little-endian architectures; should fix test failures on PPC.
...
llvm-svn: 143585
2011-11-02 23:06:23 +00:00
Douglas Gregor
10f939c3db
Don't build member initializers for zero-length or incomplete arrays,
...
and don't try to destroy them, either. Fixes
<rdar://problem/10228639>.
llvm-svn: 143584
2011-11-02 23:04:16 +00:00
Fariborz Jahanian
10317eaa28
back out changes in r143399 and r143475.
...
rvale-references are captured by reference
in blocks. // rdar://9971124.
llvm-svn: 143583
2011-11-02 22:53:43 +00:00
Douglas Gregor
324dbd3b83
Don't encourage bug reports to the Clang mailing list. We have a bug
...
report link for that.
llvm-svn: 143581
2011-11-02 22:49:47 +00:00
Chad Rosier
cdb008d117
In addition to dumping preprocessed source, dump a script with the command line
...
arguments that caused clang to crash.
rdar://8314451
llvm-svn: 143573
2011-11-02 21:29:05 +00:00
Douglas Gregor
07216d174e
Fix various minor issues find via unreachable code warnings, from
...
Ahmed Charles!
llvm-svn: 143569
2011-11-02 20:52:01 +00:00
Anna Zaks
42a4463091
[analyzer] Tweak the test script
...
Rename the pre_run_static_analyzer script into cleanup_run_static_analyzer
and use it to clean up after the reference build - which is done as part of
adding a new project to the system.
llvm-svn: 143568
2011-11-02 20:46:50 +00:00
Chandler Carruth
e0a89ab702
Add the newest Gentoo GCC version based on the reported installed
...
version in PR11298.
I hear-by apologize for adding yet more code to this monstrosity.
llvm-svn: 143567
2011-11-02 20:09:56 +00:00
Anna Zaks
75a3f48cac
[analyzer] Start writing Checker Developer Manual.
...
So far added the skeleton + several more or less complete sections:
Getting Started
Idea for a Checker
AST Visitors
Useful Commands/Debugging Hints
llvm-svn: 143554
2011-11-02 17:49:20 +00:00
Douglas Gregor
8f5653a999
Drastically simplify the mapping from the declaration corresponding to
...
the injected-class-name of a class (or class template) to the
declaration that results from substituting the given template
arguments. Previously, we would actually perform a substitution into
the injected-class-name type and then retrieve the resulting
declaration. However, in certain, rare circumstances involving
deeply-nested member templates, we would get the wrong substitution
arguments.
This new approach just matches up the declaration with a declaration
that's part of the current context (or one of its parents), which will
either be an instantiation (during template instantiation) or the
declaration itself (during the definition of the template). This is
both more efficient (we're avoiding a substitution) and more correct
(we can't get the template arguments wrong in the member-template
case).
Fixes <rdar://problem/9676205>.
llvm-svn: 143551
2011-11-02 17:38:53 +00:00
Douglas Gregor
9d0eb8f929
Use StringLiteral::getBytes(), not StringLiteral::getString(), when profiling the expression, so that it works for non-UTF8 strings.
...
llvm-svn: 143550
2011-11-02 17:26:05 +00:00
David Blaikie
503616199f
Fixing some dead links. Patch by Jean-Daniel Dupas!
...
llvm-svn: 143539
2011-11-02 15:13:40 +00:00
Benjamin Kramer
a4eadc5aa5
Remove virtually empty file.
...
llvm-svn: 143538
2011-11-02 12:04:24 +00:00
Michael J. Spencer
e73bd64d12
Add colors to the C++11 status page.
...
llvm-svn: 143535
2011-11-02 06:29:37 +00:00
Bob Wilson
126c491319
Invoke the Darwin assembler with -g instead of --gdwarf2.
...
The -g and --gdwarf2 options are currently synonyms to the Darwin assembler.
But clang itself does not recognize --gdwarf2, so if we want to experiment
with using clang, with its integrated assembler, to replace the default
assembler, it is necessary to use -g. <rdar://problem/10349486>
llvm-svn: 143533
2011-11-02 05:10:45 +00:00
Chandler Carruth
c5d72c103b
Update the CMake build for clang-tblgen to reflect that it directly
...
depends on the Support library rather than relying on TableGen's
transitive dependency.
llvm-svn: 143532
2011-11-02 05:04:43 +00:00
Bob Wilson
1d9269a8d6
Check for homogeneous aggregate return values with ARM's AAPCS-VFP ABI.
...
llvm-svn: 143530
2011-11-02 04:51:36 +00:00
Eli Friedman
055c970839
Add an option to emulate the strange Apple gcc behavior of #pragma pack.
...
<rdar://problem/10374763>
llvm-svn: 143527
2011-11-02 01:53:16 +00:00
Fariborz Jahanian
3018b95093
objc: warn if a readonly property has a setter attribute too.
...
// rdar://10357768
llvm-svn: 143518
2011-11-01 23:02:16 +00:00
Anna Zaks
49ea5bf562
[analyzer] Make sink attribute part of the node profile.
...
This prevents caching out on nodes with different sink flag.
(This is a cleaner fix for radar://10376675).
llvm-svn: 143517
2011-11-01 22:41:19 +00:00
Anna Zaks
9e82c62222
[analyzer] Fix PR11282 - an assert in markAsSink
...
This is another fallout from the refactoring. We were
calling MarkAsSink on a cached out node.
(Fixes radar://10376675)
llvm-svn: 143516
2011-11-01 22:41:14 +00:00
Anna Zaks
bfb3520fc5
[analyzer] Make sure the child builder use temporary destination sets
...
The parent and child builders should not share node sets.
llvm-svn: 143515
2011-11-01 22:41:09 +00:00
Anna Zaks
6d319489df
[analyzer] BranchNodeBuilder should not generate autotransitions.
...
This fixes radar://10367606
llvm-svn: 143514
2011-11-01 22:41:06 +00:00
Anna Zaks
1c887b35fb
[analyzer] CheckerContext::getPredecessor() cleanup
...
Remove unnecessary calls to CheckerContext::getPredecessor() + Comments.
llvm-svn: 143513
2011-11-01 22:41:01 +00:00
Anna Zaks
658f977dba
[analyzer] Remove the CheckerContext's destructor.
...
llvm-svn: 143512
2011-11-01 22:40:55 +00:00
Eli Friedman
61108f2378
Add missing export. Spotted by Leandro Melo.
...
llvm-svn: 143508
2011-11-01 22:25:07 +00:00
Douglas Gregor
c3ae7c363e
When we run into a constructor or destructor that is defined in the
...
wrong class, make sure to drop it immediately; we don't want that
constructor to be available within the DeclContext. Fixes
<rdar://problem/9677163>.
llvm-svn: 143506
2011-11-01 22:13:30 +00:00
Richard Smith
1a77e8d10d
Fix r143463 to test what it was intended to test.
...
llvm-svn: 143505
2011-11-01 21:48:46 +00:00
Douglas Gregor
fe0055e6c8
When we see an out-of-line definition of a member class template that
...
does not match any declaration in the class (or class template), be
sure to mark it as invalid. Fixes PR10924 / <rdar://problem/10119422>.
llvm-svn: 143504
2011-11-01 21:35:16 +00:00
Sebastian Pop
8188c8a1f3
rename getHostTriple into getDefaultTargetTriple in clang
...
llvm-svn: 143503
2011-11-01 21:33:06 +00:00
Richard Smith
cecf184e64
When constant-folding, don't look at the initializer of a global const variable
...
if it's marked as weak: that definition may not end up being used.
llvm-svn: 143496
2011-11-01 21:06:14 +00:00
Richard Smith
1f1f2d8ca3
Temporarily disable lvalue-to-rvalue conversions on const pointers while an
...
apparent miscompile triggered by this is investigated. This is essentially a
revert of r143298.
llvm-svn: 143491
2011-11-01 20:38:59 +00:00
Tanya Lattner
fa7d9360f0
Do not create sub_dirs. This breaks the CSS links for the website and produces really long URLS.
...
llvm-svn: 143487
2011-11-01 20:09:03 +00:00
Argyrios Kyrtzidis
1f49cda14f
[libclang] Fix non-darwin buildbots.
...
llvm-svn: 143477
2011-11-01 19:47:41 +00:00
Fariborz Jahanian
ab92b753d6
Find copy constructor needed to copy an rvalue reference
...
c++ object into block descriptor. // rdar://9971124
llvm-svn: 143475
2011-11-01 18:57:34 +00:00
Matt Beaumont-Gay
3e59facf65
Silence a warning in -Asserts builds
...
llvm-svn: 143471
2011-11-01 18:10:22 +00:00
Ted Kremenek
5d6044e413
Downgrade err_iboutlet_object_type to a warning. It was breaking a bunch of code. We will reconsider promoting it back to an error later.
...
llvm-svn: 143470
2011-11-01 18:08:35 +00:00
Argyrios Kyrtzidis
244ce8b204
Put a reference of the ASTReader in the ASTUnit.
...
This is intended for direct access of the ASTReader for uses that make
little sense to try to shoehorn in the ExternalASTSource interface.
llvm-svn: 143465
2011-11-01 17:14:15 +00:00
Argyrios Kyrtzidis
b9689bb46f
[libclang] For a class extension, give it a unique USR but for any property or ivar
...
it contains give it a USR based on its semantic context, which is the interface.
This follows what we already did for objc methods. rdar://10371669
llvm-svn: 143464
2011-11-01 17:14:12 +00:00
Richard Smith
fec0992aca
Implement C++11 'constexpr calls must return constant expressions' rule, and
...
perform the code simplifications this rule allows.
llvm-svn: 143463
2011-11-01 16:57:24 +00:00
Sebastian Redl
72ef7bc2b5
Enable function call and some overload resolution with parameters of aggregate class type and initializer list arguments.
...
llvm-svn: 143462
2011-11-01 15:53:09 +00:00
Eli Friedman
86fe42d184
Correct test for additional comment line.
...
llvm-svn: 143436
2011-11-01 04:46:08 +00:00
Eli Friedman
e1f2ce8fd3
Mark test as requiring x86 backend.
...
llvm-svn: 143427
2011-11-01 03:48:36 +00:00
Eli Friedman
97ed64081d
Don't depend on system includes in test.
...
llvm-svn: 143426
2011-11-01 03:35:57 +00:00
Eli Friedman
3ba20c1571
Make test work with ARM C++ ABI.
...
llvm-svn: 143425
2011-11-01 03:30:32 +00:00
Eli Friedman
fc08bdcc57
Tests for UTF-8 encoding in strings in source code. Patch by Seth Cantrell.
...
llvm-svn: 143418
2011-11-01 02:26:36 +00:00
Eli Friedman
fcec630a57
Fix the representation of wide strings in the AST and IR so that it uses the native representation of integers for the elements. This fixes a bunch of nastiness involving
...
treating wide strings as a series of bytes.
Patch by Seth Cantrell.
llvm-svn: 143417
2011-11-01 02:23:42 +00:00
Eli Friedman
703e7153af
Perform proper conversion for strings encoded in the source file as UTF-8. (For now, we are assuming the source character set is always UTF-8; this can be easily extended if necessary.)
...
Tests will be coming up in a subsequent commit.
Patch by Seth Cantrell.
llvm-svn: 143416
2011-11-01 02:14:50 +00:00
Eli Friedman
2ae0e1e279
Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.
...
llvm-svn: 143415
2011-11-01 02:10:54 +00:00
Tobias Grosser
1a5307c7cc
Add LinkAllPasses to clang
...
This patch ensures that no passes are deleted from clang, such that the loading
of plugins does not fail because of passes being unavailable. This increases
the size of the clang binary from 43029853 to 43915291 bytes (around 2%).
llvm-svn: 143414
2011-11-01 01:34:59 +00:00
Douglas Gregor
a7efb88baa
Add __has_feature(cxx_raw_string_literals) and
...
__has_feature(cxx_unicode_literals), from Michel Morin!
llvm-svn: 143412
2011-11-01 01:23:44 +00:00
Douglas Gregor
3c469769a2
Add __has_feature(cxx_defaulted_functions) for querying "defaulted
...
functions", from Michel Morin!
llvm-svn: 143411
2011-11-01 01:19:34 +00:00
Douglas Gregor
d73f3ddb44
Rework the AST for the initializer of a delegating constructor, so
...
that it retains source location information for the type. Aside from
general goodness (being able to walk the types described in that
information), we now have a proper representation for dependent
delegating constructors. Fixes PR10457 (for real).
llvm-svn: 143410
2011-11-01 01:16:03 +00:00
Fariborz Jahanian
f0cda63975
Adds IRGen support for captured rvalue references in blocks.
...
In this case, temporary value is copied into block descriptor
as their own copy to work on. // rdar://9971124
llvm-svn: 143399
2011-10-31 23:44:33 +00:00
Eli Friedman
42fbd62d92
Some minor comment changes in constant-folding comparisons.
...
llvm-svn: 143391
2011-10-31 22:54:30 +00:00
Eli Friedman
c6be94b3de
Don't try to fold comparisons between the address of an object and an arbitrary integer constant. Fixes regression from r143334.
...
llvm-svn: 143374
2011-10-31 22:28:05 +00:00
Ted Kremenek
ce6a5718ce
[libclang] Tweak internals of CXSourceLocation to allow an alternate implementation if the lowest bit of ptr_data[0] is not 0. This
...
is prep for work on serialized diagnostics.
llvm-svn: 143373
2011-10-31 22:23:51 +00:00
Ted Kremenek
4c4f08d555
[libclang] Move implementation of functions for manipulation CXSourceLocations and CXSourceRanges into a separate file.
...
llvm-svn: 143370
2011-10-31 22:05:42 +00:00
Ted Kremenek
bb2c7101b5
[libclang] Add CXDiagnosticImpl to represent a super class for the implementation backing a CXDiagnostic. This allows CXStoredDiagnostic
...
to be just one possible implementation of a CXDiagnostic.
llvm-svn: 143368
2011-10-31 21:40:19 +00:00
Argyrios Kyrtzidis
3689337c8e
Revert r143342. Caching of code-completion results was intentionally placed in "reparse"
...
because we don't want to take this performance hit when doing code completion
Log of r143342:
Move caching of code-completion results from ASTUnit::Reparse to ASTUnit::CodeComplete,
so that it will happen when we are doing code-completion, not reparsing.
llvm-svn: 143367
2011-10-31 21:25:31 +00:00
Eli Friedman
90a2cdf1fb
Add missing lvalue-to-rvalue conversion.
...
llvm-svn: 143364
2011-10-31 20:59:03 +00:00
Richard Smith
dd78544d44
Refactoring and test for r143360. Support for array rvalue to pointer decay is
...
needed for C++11, and will follow later.
llvm-svn: 143363
2011-10-31 20:57:44 +00:00
Richard Smith
fdc6a5956a
Temporary fix for assert while evaluating array-to-pointer decay on array
...
rvalue. Test and better fix to follow.
llvm-svn: 143360
2011-10-31 20:20:33 +00:00
Fariborz Jahanian
d01ddd1d07
Improve text of a diagnostic.
...
llvm-svn: 143353
2011-10-31 17:27:06 +00:00
Anders Carlsson
2f1a6c3f01
In x86_64, when calling an Objective-C method that returns a _Complex long double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.
...
llvm-svn: 143350
2011-10-31 16:27:11 +00:00
Axel Naumann
a24f2c8875
Add possibility to specify an include location for createFileIDForMemBuffer().
...
Useful to set up a virtual include hierarchy, e.g. to order diagnostics for ambiguous overloads from MemoryBuffers.
llvm-svn: 143347
2011-10-31 11:02:24 +00:00
Chandler Carruth
4c042fe667
Simplify the set of directories we look for on multiarch systems.
...
I don't have any Debian system with one of these currently, and it seems
unlikely for one to show up suddenly. We can add more patterns here if
they become necessary.
llvm-svn: 143346
2011-10-31 09:06:40 +00:00
Chandler Carruth
68ed0ae51c
Add "just one more" include path to the monstrosity that is our header
...
search logic. The Debian multiarch seems to have completely changed from
when these were originally added, and I'd like to remove a bunch of
them, but I'll be lazy and delay that until this logic is hoisted into
the driver where it belongs.
This should resolve PR11223.
llvm-svn: 143345
2011-10-31 08:42:27 +00:00
Chandler Carruth
fb7fa24e5c
Fix part of PR11223 and probably a few dups as well. This teaches the
...
library search logic to "properly" handle multiarch installations. I've
tested this on both Debian unstable and the latest Ubuntu which both use
this setup, and this appears to work largely the same way as GCC does.
It isn't exactly the same, but it is close enough and more principled in
its behavior where it differs. This should resolve any failures to find
'crt1.o' etc on Debian-based Linux distributions. If folks find more
cases where we fail, please file bugs and CC me.
Test cases for all of the debian silliness are waiting both to simplify
the process of merging these down into the 3.0 release, and because
they're so crazy I haven't yet been able to really produce a fake tree
that represents what we need to test for. I'll eventually add them
though.
llvm-svn: 143344
2011-10-31 08:42:24 +00:00
Argyrios Kyrtzidis
3b36df5556
Fix the source range for ObjCInterfaces that are forward decls.
...
llvm-svn: 143343
2011-10-31 07:20:23 +00:00
Argyrios Kyrtzidis
1b544e3cf0
Move caching of code-completion results from ASTUnit::Reparse to ASTUnit::CodeComplete,
...
so that it will happen when we are doing code-completion, not reparsing.
llvm-svn: 143342
2011-10-31 07:20:19 +00:00
Argyrios Kyrtzidis
6fb6003aad
[PCH] Now that we store the location of a decl outside its record
...
make sure that we keep track of locations of replaced decls as well.
llvm-svn: 143341
2011-10-31 07:20:15 +00:00
Argyrios Kyrtzidis
6c798bebc1
[PCH] For ASTReader's FileDeclIDs also associate the Module that the
...
local DeclIDs came from.
llvm-svn: 143340
2011-10-31 07:20:08 +00:00
Argyrios Kyrtzidis
98b26201ab
Introduce SourceManager::isLocalFileID/isLoadedFileID functions.
...
llvm-svn: 143339
2011-10-31 07:20:03 +00:00
Argyrios Kyrtzidis
e54568d657
Have the ASTUnit associate the local declarations that get parsed with the file
...
that contains them.
llvm-svn: 143338
2011-10-31 07:19:59 +00:00
Argyrios Kyrtzidis
f3068a73f7
[libclang] Rename VisitIncludedPreprocessingEntries -> VisitIncludedEntities
...
llvm-svn: 143337
2011-10-31 07:19:54 +00:00
Richard Smith
4e4c78ffff
C++11 generalized constant expression handling: evaluation support for
...
materialized temporaries.
llvm-svn: 143335
2011-10-31 05:52:43 +00:00
Richard Smith
83c682115b
C++11 generalized constant expressions: evaluate equality comparisons between
...
arbitrary pointers, if those pointers don't point to weak objects or literals.
llvm-svn: 143334
2011-10-31 05:11:32 +00:00
Tobias Grosser
3510e999c4
cindex.py: Remove more ternary operator + whitespace fixes
...
Another batch of ternary operators and some whitespace fixes
(Getting in sync with the clang_complete version of this file)
llvm-svn: 143330
2011-10-31 02:06:50 +00:00
Richard Smith
8b3497ee54
C++11 generalized constant expressions: support pointer comparisons where the
...
result is not unspecified.
llvm-svn: 143329
2011-10-31 01:37:14 +00:00
Nick Lewycky
dd424a5bc4
Turn on the new .file directive when appropriate, instead of turning it off.
...
llvm-svn: 143327
2011-10-31 01:06:42 +00:00
Tobias Grosser
237f5a07fa
clang.py: Remove use of ternary operators
...
This change is necessary to make this file python 2.4 compatible.
llvm-svn: 143324
2011-10-31 00:49:07 +00:00
Tobias Grosser
e15496f1d7
cindex.py: Allow to create a cursor from file/row/column
...
We add a constructor to create a SourceLocation from a position in
a file and we use this SourceLocation to retrieve a cursor.
llvm-svn: 143322
2011-10-31 00:31:32 +00:00
Tobias Grosser
80c4b81f54
cindex.py: Add File.create_from_name()
...
llvm-svn: 143321
2011-10-31 00:07:19 +00:00
Richard Smith
390cd49906
Fix assert on constant expression evaluation of floating point increment.
...
llvm-svn: 143320
2011-10-30 23:17:09 +00:00
Peter Collingbourne
f1d76db466
Add support for lazily linking bitcode files (using a new
...
-mlink-bitcode-file flag), and more generally llvm::Modules, before
running optimisations.
llvm-svn: 143314
2011-10-30 17:30:44 +00:00
Roman Divacky
ce253d89a2
Add support for sse4a and enable it for amdfam10 cpu.
...
llvm-svn: 143312
2011-10-30 13:47:56 +00:00
Jim Goodnow II
921b9f52f4
Fixed CXX struct and class initialization printing to support 'move'
...
type constructors.
llvm-svn: 143309
2011-10-30 11:17:39 +00:00
Roman Divacky
43eb6f8aeb
Add support for amdfam10 cpu.
...
llvm-svn: 143305
2011-10-30 07:48:46 +00:00
Bob Wilson
d32fba2379
Stop disabling integrated assembler with -static. <rdar://problem/10175391>
...
The integrated assembler seems to be working pretty well for -static code
now, so remove the hacks to disable it.
llvm-svn: 143304
2011-10-30 00:20:28 +00:00
Richard Smith
9c8d1c5c64
Don't crash if a GCC binary conditional is used in a constant expression on an
...
integer-cast pointer value.
llvm-svn: 143299
2011-10-29 22:55:55 +00:00
Richard Smith
35a1f85466
constexpr evaluation: allow lvalue-to-rvalue conversion on any literal type, not
...
just integers and floating point types. Since we don't support evaluating class
types or performing lvalue-to-rvalue conversions on array elements yet, this
just means pointer types right now.
llvm-svn: 143298
2011-10-29 21:53:17 +00:00
Richard Smith
0b0a0b6174
constexpr function substitution:
...
Track the function invocation where an lvalue referring to a constexpr function
parameter originated from, and use it to substitute the correct argument and to
determine whether such an argument's lifetime has ended.
llvm-svn: 143296
2011-10-29 20:57:55 +00:00
Abramo Bagnara
254b63068a
Fixed FriendDecl source locations.
...
llvm-svn: 143295
2011-10-29 20:52:52 +00:00
Argyrios Kyrtzidis
9780553ef0
Use LIBCLANG_NOTHREADS instead of CINDEXTEST_NOTHREADS inside libclang,
...
so the c-index-test one can be enabled without affecting libclang.
llvm-svn: 143288
2011-10-29 19:32:39 +00:00
Richard Smith
7b553f1b19
Rename Expr::Evaluate to Expr::EvaluateAsRValue to make it clear that it will
...
implicitly perform an lvalue-to-rvalue conversion if used on an lvalue
expression. Also improve the documentation of Expr::Evaluate* to indicate which
of them will accept expressions with side-effects.
llvm-svn: 143263
2011-10-29 00:50:52 +00:00
Ted Kremenek
4610ea2bcf
Start work on SerializedDiagnosticPrinter, a new DiagnosticConsumer that serializes out the diagnostics for a given translation unit to a bit code file. This is a WIP.
...
The motivation for this new DiagnosticConsumer is to provide a way for tools invoking the compiler
to get its diagnostics via a libclang interface, rather than textually parsing the compiler output.
This gives us flexibility to change the compiler's textual output, but have a structured data format
for clients to use to get the diagnostics via a stable API.
I have no tests for this, but llvm-bcanalyzer so far shows that the emitted file is well-formed.
More work to follow.
llvm-svn: 143259
2011-10-29 00:12:39 +00:00
Fariborz Jahanian
244b187d22
objc-arc: desugar certain type and improve on diagnostic for
...
ownership qualifier cast which won't work.
// rdar://10244607
llvm-svn: 143258
2011-10-29 00:06:10 +00:00
Richard Smith
53cafabac0
Add test missed from r143234.
...
llvm-svn: 143257
2011-10-29 00:03:08 +00:00
Argyrios Kyrtzidis
7362e9bacb
[PCH] Sort the file decls by file offset not raw source location.
...
Currently sorting by raw source location does work as intended but who knows
what may change in the future..
llvm-svn: 143256
2011-10-28 23:57:47 +00:00
Argyrios Kyrtzidis
df53da8725
[PCH] In ASTWriter::associateDeclWithFile don't bother finding the file loc
...
if we are not interested in the decl.
llvm-svn: 143255
2011-10-28 23:57:43 +00:00
Richard Smith
472d495372
Fix assertion in constant expression evaluation. The LHS of a floating-point
...
binary operator isn't an rvalue if it's an assignment operator.
llvm-svn: 143250
2011-10-28 23:26:52 +00:00
Douglas Gregor
dba74af1b8
Move -Wc++11-compat out of -Wall. It causes trouble for clients that
...
define their own "nullptr" class in C++98 and build with -Wall.
llvm-svn: 143248
2011-10-28 23:11:43 +00:00
Douglas Gregor
2c4542d3ec
Give __STDC_VERSION__ the value 201001L when we're in C1x mode. The
...
committee hasn't set a value for __STDC_VERSION__ yet, so this is a
placeholder. But at least it's > 199901L.
llvm-svn: 143245
2011-10-28 23:02:54 +00:00
Argyrios Kyrtzidis
a109e00bba
[libclang] Introduce use of CINDEXTEST_FAILONERROR environment variable which, if set,
...
will cause c-index-test to return as failed if a compiler error occurred.
llvm-svn: 143243
2011-10-28 22:54:36 +00:00
Argyrios Kyrtzidis
d92ced00b1
[libclang] Check for environment variable CINDEXTEST_NOTHREADS in clang_reparseTranslationUnit.
...
llvm-svn: 143242
2011-10-28 22:54:33 +00:00
Argyrios Kyrtzidis
b12986f1cb
Make -error-on-deserialized-decl work correctly by correctly delegating to
...
the previous ASTDeserializationListener.
llvm-svn: 143241
2011-10-28 22:54:31 +00:00