Rafael Espindola
b6cc74c809
Small refactoring so that only one of the mergeVisibility/mergeLinkage functions
...
calls setVisibility/setLinkage.
No functionality change.
llvm-svn: 147423
2012-01-02 06:00:53 +00:00
Douglas Gregor
fe620daefa
Eliminate ObjCProtocolDecl's end-of-definition location. It is not
...
used anywhere.
llvm-svn: 147422
2012-01-02 02:22:52 +00:00
Douglas Gregor
cf9f3ea6f9
Fix canonicalization of protocol-qualified types
...
llvm-svn: 147421
2012-01-02 02:00:30 +00:00
Douglas Gregor
1bd9617671
Move ObjCProtocolDecl::EndLoc into its DefinitionData, and give
...
ObjCProtocolDecl proper source-range information.
llvm-svn: 147420
2012-01-02 01:18:16 +00:00
Douglas Gregor
05a1f4d60b
Eliminate the ForwardDecl/InitiallyForwardDecl bits from ObjCProtocolDecl. They are no longer needed
...
llvm-svn: 147419
2012-01-01 22:06:18 +00:00
Abramo Bagnara
123bec89ab
Added -Wdisabled-macro-expansion warning.
...
llvm-svn: 147418
2012-01-01 22:01:04 +00:00
Douglas Gregor
da38930cf3
Implement declaration merging for Objective-C protocols across
...
multiple, disjoint modules. There is far too much duplicating with the
ObjCInterfaceDecl case here, which I'll eliminate shortly.
llvm-svn: 147417
2012-01-01 21:47:52 +00:00
Douglas Gregor
a503bb9ce4
Eliminate redundant, empty function
...
llvm-svn: 147416
2012-01-01 21:39:12 +00:00
Douglas Gregor
f610267581
Eliminate ObjCForwardProtocolDecl, which is redundant now that
...
ObjCProtocolDecl modules forward declarations properly.
llvm-svn: 147415
2012-01-01 21:23:57 +00:00
Douglas Gregor
c51118238c
Don't bother rewriting an Objective-C class or protocol declaration to the module file when we've merely added a definition
...
llvm-svn: 147414
2012-01-01 20:35:33 +00:00
Douglas Gregor
42ff1bb922
Eliminate ASTMutationListener::UpdatedAttributeList, which is no
...
longer needed now that we aren't back-patching ObjCProtocolDecls.
llvm-svn: 147413
2012-01-01 20:33:24 +00:00
Douglas Gregor
32c1757730
Wire up redeclaration chains for Objective-C protocols, so that both
...
forward declarations and definitions of an Objective-C protocol are
represented within a single chain of ObjCProtocolDecls.
llvm-svn: 147412
2012-01-01 20:30:41 +00:00
Douglas Gregor
a715bfff98
Introduce the core infrastructure needed to model redeclaration chains
...
for Objective-C protocols, including:
- Using the first declaration as the canonical declaration
- Using the definition as the primary DeclContext
- Making sure that all declarations have a pointer to the definition
data, and that we know which declaration is the definition
- Serialization support for redeclaration chains and for adding
definitions to already-serialized declarations.
However, note that we're not taking advantage of much of this code
yet, because we're still re-using ObjCProtocolDecls.
llvm-svn: 147410
2012-01-01 19:51:50 +00:00
Douglas Gregor
e6e48b1490
Move the data that corresponds to the definition of a protocol into a
...
separately-allocated DefinitionData structure. Introduce various
functions that will help with the separation of declarations from
definitions (isThisDeclarationADefinition(), hasDefinition(),
getDefinition()).
llvm-svn: 147408
2012-01-01 19:29:29 +00:00
Rafael Espindola
01fb1135d6
Use hasSameType.
...
llvm-svn: 147407
2012-01-01 18:36:59 +00:00
Douglas Gregor
33b2429bf3
Use declaresSameEntity() when comparing ObjCProtocolDecls, and
...
getCanonicalDecl() when putting ObjCProtocolDecls into a set. This is
groundwork for making ObjCProtocolDecl redeclarable.
llvm-svn: 147406
2012-01-01 18:09:12 +00:00
Rafael Espindola
0f960a0a5a
Consider visibility attributes in namespaces as being explicit. I.e., they
...
take precedence over command line options. Fixes PR10113.
llvm-svn: 147405
2012-01-01 18:06:40 +00:00
Rafael Espindola
09593a322a
Replace a isa+cast with a dyn_cast.
...
llvm-svn: 147401
2012-01-01 17:48:19 +00:00
NAKAMURA Takumi
e9d3d21988
Happy new year 2012!
...
llvm-svn: 147395
2012-01-01 08:16:56 +00:00
NAKAMURA Takumi
1154e75c7c
clang/unittests/Basic/SourceManagerTest.cpp: Fixup corresponding to r147387.
...
llvm-svn: 147388
2011-12-31 04:25:56 +00:00
Douglas Gregor
1fb5c3a63a
Implement support for module requirements, which indicate the language
...
features needed for a particular module to be available. This allows
mixed-language modules, where certain headers only work under some
language variants (e.g., in C++, std.tuple might only be available in
C++11 mode).
llvm-svn: 147387
2011-12-31 04:05:44 +00:00
NAKAMURA Takumi
84a5dfdf72
Split out clang/test/Driver/debug-options-as.c from debug-options.c, and mark it as XFAIL: mingw32.
...
Mingw32 target has not supported integrated-as yet.
llvm-svn: 147386
2011-12-31 02:36:23 +00:00
Richard Smith
88eb4d3a45
Fix crash when trying to pretty-print unicode or wide string literals.
...
llvm-svn: 147385
2011-12-30 23:37:31 +00:00
Richard Smith
fddd384b73
Unrevert r147271, reverted in r147361.
...
Also temporarily remove the assumption from IR gen that we can emit IR for every
constant we can fold, since it isn't currently true in C++11, to fix PR11676.
Original comment from r147271:
constexpr: perform zero-initialization prior to / instead of performing a
constructor call when appropriate. Thanks to Eli for spotting this.
llvm-svn: 147384
2011-12-30 21:15:51 +00:00
Rafael Espindola
30ccf36224
Add CXX_FINAL_ATTR, CXX_OVERRIDE_ATTR, ANNOTATE_ATTR and ASM_LABEL_ATTR to the
...
python bindinds.
patch by Tom Schuster!
llvm-svn: 147378
2011-12-30 15:27:22 +00:00
NAKAMURA Takumi
96d77daa49
clang/lib/Headers/CMakeLists.txt: Unbreak cmake build.
...
llvm-svn: 147373
2011-12-30 10:38:16 +00:00
Craig Topper
b4ceb6fd52
Add FMA4 intrinsics.
...
llvm-svn: 147372
2011-12-30 09:15:03 +00:00
Craig Topper
ba418d8e91
Remove an accidental change from r147370. Would only break if the new fma4 flag was used.
...
llvm-svn: 147371
2011-12-30 07:35:49 +00:00
Craig Topper
ffdb46ceef
Add FMA4 feature flag. Intrinsics coming soon. Also make sse4a feature flag imply sse3. Matches gcc behavior.
...
llvm-svn: 147370
2011-12-30 07:33:42 +00:00
Rafael Espindola
f49e9ce849
Add test for PRr11676.
...
llvm-svn: 147363
2011-12-30 03:13:44 +00:00
Rafael Espindola
fafe4b7572
Revert r147271. This fixes PR11676.
...
llvm-svn: 147362
2011-12-30 03:11:50 +00:00
Richard Smith
e434590bd9
Change the diagnostics which said 'accepted as an extension' to instead say
...
'is an extension'. The former is inappropriate and confusing when building with
-Werror/-pedantic-errors.
llvm-svn: 147357
2011-12-29 21:57:33 +00:00
Richard Smith
6b751dc2c6
Unbreak cmake build after r147340.
...
llvm-svn: 147355
2011-12-29 21:42:29 +00:00
Alexis Hunt
c4f1b4ad30
Make this text slightly more accurate; thanks to Johannes Schaub for
...
pointing this out.
llvm-svn: 147346
2011-12-29 18:40:13 +00:00
Craig Topper
1de8348db7
Add popcnt feature flag to match gcc. This flag is implied when sse42 is enabled, but can be disabled separately. Move popcnt intrinsics to popcntintrin.h to match gcc.
...
llvm-svn: 147340
2011-12-29 16:10:46 +00:00
Rafael Espindola
d1c9c9bbfd
Fix cmake build with -DBUILD_SHARED_LIBS=ON.
...
llvm-svn: 147338
2011-12-29 04:31:59 +00:00
DeLesley Hutchins
714296cb31
Support for thread safety attributes on functions
...
llvm-svn: 147331
2011-12-29 00:56:48 +00:00
Richard Smith
5fab0c9e1a
Small refactoring and simplification of constant evaluation and some of its
...
clients. No functionality change.
llvm-svn: 147318
2011-12-28 19:48:30 +00:00
Rafael Espindola
1510c8589e
Handle a /etc/debian_version with a version number instead of a codename.
...
Patch by Sylvestre Ledru. Fixes PR11673.
llvm-svn: 147313
2011-12-28 18:17:14 +00:00
Benjamin Kramer
cf5014771d
Add a target hook for FLT_EVAL_METHOD and use it to set the value on x86 with sse disabled.
...
x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD
to "2".
llvm-svn: 147311
2011-12-28 15:47:06 +00:00
Hans Wennborg
e5f554ac48
Support the 'a' scanf length modifier as an extension in C++.
...
It should not be supported in C++11, since that uses the C99 standard
library, in which 'a' is a format specifier.
llvm-svn: 147310
2011-12-28 13:10:50 +00:00
Zhongxing Xu
86a68d078c
Enable the user to control whether CXXConstructExpr will be added as a
...
block-level expr. Currently CXXConstructExpr is always added as a block-level
expr. This caused two problems for the analyzer (and potentially for the
CFG-based codegen).
1. We have no way to know whether a ctor call is base or complete.
2. We have no way to know the destination object being contructed.
llvm-svn: 147306
2011-12-28 04:38:46 +00:00
Douglas Gregor
deafd0b2a4
Eliminate ObjCClassDecl, which is redundant now that ObjCInterfaceDecl
...
covers both declarations (@class ) and definitions (@interface) of an
Objective-C class.
llvm-svn: 147299
2011-12-27 22:43:10 +00:00
Rafael Espindola
0b79046c5c
Fix the visibility of methods of explicit template instantiation definition
...
when using -fvisibility-inlines-hidden. This matches gcc's behavior and
documentation.
Fixes PR11642.
llvm-svn: 147295
2011-12-27 21:15:28 +00:00
Richard Smith
6e52514c5d
constexpr: support for evaluation and codegen of typeid constants.
...
llvm-svn: 147290
2011-12-27 12:18:28 +00:00
Benjamin Kramer
c2c47f90a0
Initialize member that ends up in PCH files.
...
llvm-svn: 147288
2011-12-27 11:15:04 +00:00
Eli Friedman
2b081c2c9e
Partially revert r147195; lib/Basic/Version.cpp conditionally depends on config.h.
...
llvm-svn: 147282
2011-12-26 22:43:17 +00:00
Rafael Espindola
cde2c8f7d2
Delay checking of typedefs of dependent types. Fixes PR11630.
...
llvm-svn: 147281
2011-12-26 22:42:47 +00:00
Dylan Noblesmith
68207c0b26
driver: fix unused variable warning
...
from r147218.
llvm-svn: 147278
2011-12-26 19:29:47 +00:00
Benjamin Kramer
eed4f2a6c5
Fix potential use after free.
...
llvm-svn: 147277
2011-12-26 14:18:37 +00:00