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
NAKAMURA Takumi
9a3f299f0e
clang/lib/Headers/CMakeLists.txt: Unbreak cmake build to add bmi2intrin.h since r147275.
...
llvm-svn: 147276
2011-12-26 03:20:06 +00:00
Craig Topper
c334dd68a7
Add BMI2 intrinsics.
...
llvm-svn: 147275
2011-12-26 02:31:10 +00:00
Richard Smith
f0215fe898
Fix constexpr handling to allow 'extern constexpr' variable declarations. We no
...
longer have access to the source locations we need to produce the
'replace constexpr with const' fixits, so they're gone for now.
llvm-svn: 147273
2011-12-25 21:17:58 +00:00
Richard Smith
771c4a1775
constexpr: perform zero-initialization prior to / instead of performing a
...
constructor call when appropriate. Thanks to Eli for spotting this.
llvm-svn: 147271
2011-12-25 20:00:17 +00:00
Craig Topper
03348d09e3
Change LZCNT and BMI tests to check IR instead of X86 assembly.
...
llvm-svn: 147267
2011-12-25 15:20:31 +00:00
NAKAMURA Takumi
dceeeb8918
lib/Headers/CMakeLists.txt: Fix cmake build since r147263, for two missing headers.
...
llvm-svn: 147266
2011-12-25 12:47:46 +00:00
Craig Topper
a06d4a1c40
Add the rest of the BMI intrinsics.
...
llvm-svn: 147265
2011-12-25 07:27:12 +00:00
Craig Topper
f2855ade2b
Add intrinsics for lzcnt and tzcnt instructions.
...
llvm-svn: 147263
2011-12-25 06:25:37 +00:00
Craig Topper
22967d4a61
Add BMI, BMI2, and LZCNT feature flags to enable adding intrinsics.
...
llvm-svn: 147262
2011-12-25 05:06:45 +00:00
Rafael Espindola
65e025cad5
Remove unused variables.
...
llvm-svn: 147260
2011-12-25 01:18:52 +00:00
Richard Smith
966c1fb0c8
Always implicitly declare move assignment operations for dynamic classes, in
...
case they override virtual functions from a base class. Also fix -print-stats
counting of move assignment/construction.
llvm-svn: 147258
2011-12-24 21:56:24 +00:00
Craig Topper
175543ac78
Add last of the AVX2 intrinsics except for gather.
...
llvm-svn: 147253
2011-12-24 17:20:15 +00:00
Craig Topper
a9387739aa
Add AVX2 permute intrinsics. Also add parentheses on some macro arguments in other intrinsic headers.
...
llvm-svn: 147242
2011-12-24 07:55:25 +00:00
Craig Topper
9f00948a82
Add AVX2 permute intrinsics. Also add parentheses on some macro arguments in other intrinsic headers.
...
llvm-svn: 147241
2011-12-24 07:55:14 +00:00
Craig Topper
9a01e58447
Add AVX2 intrinsics for FP vbroadcast, vbroadcasti128, and vpblendd.
...
llvm-svn: 147240
2011-12-24 05:19:47 +00:00
Craig Topper
9479895928
Add AVX2 intrinsics for FP vbroadcast, vbroadcasti128, and vpblendd.
...
llvm-svn: 147239
2011-12-24 05:19:29 +00:00
Craig Topper
a6fdbd1807
Intrinsics for AVX2 unpack instructions.
...
llvm-svn: 147237
2011-12-24 03:58:43 +00:00
Craig Topper
f4bb952533
More AVX2 intrinsics for shift, psign, some shuffles, and psadbw.
...
llvm-svn: 147236
2011-12-24 03:28:57 +00:00
Nico Weber
d3bdadf616
Fix several issues related to specializations and explicit instantiations.
...
Explicit instantiations following specializations are no-ops and hence have
no PointOfInstantiation. That was done correctly in most cases, but for a
specialization -> instantiation decl -> instantiation definition chain, the
definition didn't realize that it was a no-op. Fix that.
Also, when printing diagnostics for these no-ops, get the diag location from
the decl name location.
Add many test cases, one of them not yet passing (but it failed the same way
before this change). Fixes http://llvm.org/pr11558 and more.
llvm-svn: 147225
2011-12-23 20:58:04 +00:00
Anton Yartsev
9b6b2e5535
fix for PR11634
...
llvm-svn: 147224
2011-12-23 20:23:19 +00:00
Benjamin Kramer
3c6982b911
Give C11's __STDC_VERSION__ the final value.
...
llvm-svn: 147222
2011-12-23 17:00:41 +00:00
Benjamin Kramer
e56f393249
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.
...
Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility.
llvm-svn: 147221
2011-12-23 17:00:35 +00:00
Benjamin Kramer
6784aeb9ef
C1X is now C11, add -std=c11 and -std=gnu11 as aliases for the c1x arguments.
...
llvm-svn: 147220
2011-12-23 15:28:31 +00:00
Craig Topper
235a365d58
Add AVX2 multiply intrinsics.
...
llvm-svn: 147219
2011-12-23 08:31:16 +00:00
Dylan Noblesmith
e99b27f35e
Let CompilerInvocation initialization indicate failure
...
This fixes the FIXMEs in ParseAnalyzeArgs. (Also a
precursor to moving the analyzer into an AST plugin.)
For consistency, do the same with AssemblerInvocation.
llvm-svn: 147218
2011-12-23 03:05:38 +00:00
Argyrios Kyrtzidis
2644063ec9
Pass context and access to Parser::ParseExplicitInstantiation() for
...
good parser error recovery and for not crashing.
We still have a accepts-invalid-code bug.
llvm-svn: 147216
2011-12-23 02:16:45 +00:00
Fariborz Jahanian
87b4ae6cab
objective-c: Use class definition AST in several situations when
...
building related objc ASTs which require a class definition AST.
These were uncovered when testing objc rewriter.
llvm-svn: 147210
2011-12-23 00:31:02 +00:00
Douglas Gregor
8519c355a9
Remove spurious, but now legal, typename
...
llvm-svn: 147208
2011-12-23 00:27:08 +00:00
Douglas Gregor
fe76cfd89c
When building a module with an umbrella header, warn about any headers
...
found within that umbrella directory that were not actually included
by the umbrella header. They should either be referenced in the module
map or included by the umbrella header.
llvm-svn: 147207
2011-12-23 00:23:59 +00:00
Ted Kremenek
72be32af88
Colorize and condense CFG pretty-printing.
...
llvm-svn: 147203
2011-12-22 23:33:52 +00:00
Nico Weber
3cef10814a
Add -Wdangling-else.
...
This works like described in http://drdobbs.com/blogs/cpp/231602010
Fixes http://llvm.org/PR11609
llvm-svn: 147202
2011-12-22 23:26:17 +00:00
Dylan Noblesmith
1ced737ebf
remove unneeded config.h includes
...
llvm-svn: 147195
2011-12-22 22:49:47 +00:00
Douglas Gregor
852e6b7316
Make a note for an optimization that I'd like to implement, when the ASTs for local externs are sound
...
llvm-svn: 147185
2011-12-22 22:05:07 +00:00
Douglas Gregor
464b0ca61a
Serialize the AST reader's mapping from canonical declarations to the
...
set of (previously-canonical) declaration IDs to the module file, so
that future AST reader instances that load the module know which
declarations are merged. This is important in the fairly tricky case
where a declaration of an entity, e.g.,
@class X;
occurs before the import of a module that also declares that
entity. We merge the declarations, and record the fact that the
declaration of X loaded from the module was merged into the (now
canonical) declaration of X that we parsed.
llvm-svn: 147181
2011-12-22 21:40:42 +00:00
Kevin Enderby
fc85b1d1c5
Add missing triple to darwin clang driver test.
...
llvm-svn: 147179
2011-12-22 21:32:51 +00:00
Nick Lewycky
097f47ce02
Fix build under -Wswitch by adding support for FK_ListConstructorOverloadFailed
...
to initialization sequence dumping.
llvm-svn: 147171
2011-12-22 20:21:32 +00:00
Douglas Gregor
0475cd88c9
If we end up merging an Objective-C class with an existing Objective-C
...
class that comes from a different module file, make sure that we load
all of the pending declarations for the original declaration.
llvm-svn: 147168
2011-12-22 19:44:59 +00:00
Kevin Enderby
292dc080e0
Last part of support for generating dwarf for assembly source files. This gets
...
the clang driver to enable this when assembling a .s file. rdar://9275556
llvm-svn: 147167
2011-12-22 19:31:58 +00:00
Sebastian Redl
6901c0de67
Overloading for initializer list construction.
...
llvm-svn: 147156
2011-12-22 18:58:38 +00:00
Sebastian Redl
867f228a55
Fix a parser bug that prevented it from correctly parsing explicit construct expressoins of the form T{args}.
...
llvm-svn: 147155
2011-12-22 18:58:29 +00:00
Sebastian Redl
ed2e53222f
List-initialization via constructor part 1. Still needs: pretty-printing, overloading, initializer_list.
...
llvm-svn: 147145
2011-12-22 14:44:04 +00:00
Craig Topper
1f2460ad43
Add AVX2 intrinsics for max, min, sign extend, and zero extend.
...
llvm-svn: 147141
2011-12-22 09:18:58 +00:00
Eli Friedman
843eef73dd
Delete stray semicolon.
...
llvm-svn: 147140
2011-12-22 06:36:54 +00:00
Ted Kremenek
5586354d7d
Fix typos in analyzer diagnostics pointed out by Matt Beaumont-Gay and Robert Purves.
...
llvm-svn: 147139
2011-12-22 06:35:52 +00:00
Argyrios Kyrtzidis
8a26c4de64
In Lexer::getCharAndSizeSlow[NoWarn] if we come up against
...
\<newline><newline>
don't consume the second newline.
Thanks to David Blaikie for pointing out the crash!
llvm-svn: 147138
2011-12-22 04:38:07 +00:00
Eli Friedman
803acb3ff2
Add support for bitcasts to vector type in Evaluate.
...
llvm-svn: 147137
2011-12-22 03:51:45 +00:00
Richard Smith
cc36f698af
PR11614: Mark defaulted special constructors as constexpr if their implicit
...
definition would satisfy the constexpr requirements.
llvm-svn: 147128
2011-12-22 02:22:31 +00:00
Douglas Gregor
022857e03d
When deserializing an Objective-C class, check whether we have another
...
declaration of that same class that either came from some other module
or occurred in the translation unit loading the module. In this case,
we need to merge the two redeclaration chains immediately so that all
such declarations have the same canonical declaration in the resulting
AST (even though they don't in the module files we've imported).
Focusing on Objective-C classes until I'm happy with the design, then
I'll both (1) extend this notion to other kinds of declarations, and
(2) optimize away this extra checking when we're not dealing with
modules. For now, doing this checking for PCH files/preambles gives us
better testing coverage.
llvm-svn: 147123
2011-12-22 01:48:48 +00:00
Ted Kremenek
299cfb7a02
Enhance AnalysisDeclContext::getReferencedBlockVars() to understand PseudoObjExprs. It turns out
...
that the information collected by this method is a super set of the captured variables in BlockDecl.
llvm-svn: 147122
2011-12-22 01:30:46 +00:00
Richard Smith
ca2cfbf5ce
PR11637: implement special-case constant evaluation for char arrays initialized
...
by string literals.
llvm-svn: 147120
2011-12-22 01:07:19 +00:00
Ted Kremenek
c177d9faf5
Fix regression in LiveVariables when reasoning about variables captured by blocks.
...
llvm-svn: 147116
2011-12-22 00:46:32 +00:00
Eli Friedman
1148b0f13c
Fix a silly mistake in this test that somehow slipped into my last commit.
...
llvm-svn: 147112
2011-12-22 00:06:39 +00:00
Eli Friedman
5c9cd7a8a3
Fix a failure (which led to a crash) in constant emission code with vector compound literals.
...
llvm-svn: 147111
2011-12-22 00:04:00 +00:00
Argyrios Kyrtzidis
e5cdd080ba
In Lexer::getCharAndSizeSlow[NoWarn] make sure we don't go over the end of the buffer
...
when the end of the buffer is immediately after an escaped newline.
Fixes http://llvm.org/PR10153 .
llvm-svn: 147091
2011-12-21 20:19:55 +00:00
Fariborz Jahanian
a4b2a86353
objc, objc rewriter. Fixes couple of bugs one
...
because of recent refactoring and one in the
rewriter.
llvm-svn: 147070
2011-12-21 19:48:07 +00:00
Ted Kremenek
1a7648b666
Improve CFG pretty-printing for CXXConstructExprs.
...
llvm-svn: 147068
2011-12-21 19:39:59 +00:00
Matt Beaumont-Gay
4a39e49373
Cast enumerators from different anonymous enums to unsigned, to appease gcc
...
llvm-svn: 147067
2011-12-21 19:36:37 +00:00
Ted Kremenek
0ffba93e51
Improve CFG pretty-printing of CastExprs.
...
llvm-svn: 147066
2011-12-21 19:32:38 +00:00
Argyrios Kyrtzidis
c09b854f6b
[libclang] In visitPreprocessedEntitiesInRange we are interested in a file region
...
so translate the range to file locations.
llvm-svn: 147058
2011-12-21 16:56:38 +00:00
Argyrios Kyrtzidis
e841c901de
Fix bugs in SourceManager::computeMacroArgsCache() and add a unit test for it.
...
llvm-svn: 147057
2011-12-21 16:56:35 +00:00
Argyrios Kyrtzidis
2403797eec
For SourceManager::isBeforeInTranslationUnit(), have it consider macro arg expanded
...
token locations as coming before the closing ')' of a function macro expansion.
Include a unit test for SourceManager.
llvm-svn: 147056
2011-12-21 16:56:29 +00:00
Douglas Gregor
596b7cbc19
Implement a trivial, obvious optimization for deserialization of
...
redeclaration chains: only ever have the reader search for
redeclarations of the first (canonical) declaration, since we only
ever record redeclaration ranges for the that declaration. Searching
for redeclarations of non-canonical declarations will never find
anything, so it's a complete waste of time.
llvm-svn: 147055
2011-12-21 15:12:03 +00:00
Craig Topper
a73baa8050
Add a few more AVX2 intrinsics and fix the type strings on a couple SSE intrinsics.
...
llvm-svn: 147048
2011-12-21 08:35:05 +00:00
Craig Topper
3fe5ac40db
Add AVX2 horizontal add/sub intrinsics.
...
llvm-svn: 147047
2011-12-21 08:17:40 +00:00
Richard Smith
f2b681b4d8
constexpr: diagnostic improvements for invalid lvalue-to-rvalue conversions in
...
constant expressions.
llvm-svn: 147035
2011-12-21 05:04:46 +00:00
Nick Lewycky
f243e0df95
Bump suitable alignment on darwin ppc 32/64 and x86-32 to 16 bytes. I don't
...
actually know about the other OSes on X86-32 besides Linux...
llvm-svn: 147034
2011-12-21 04:25:47 +00:00
Richard Smith
242ad89a15
C++11 half of r147023: In C++11, additionally eagerly instantiate:
...
- constexpr function template instantiations
- variables of reference type
- constexpr variables
llvm-svn: 147031
2011-12-21 02:55:12 +00:00
Eli Friedman
b9ccd553fc
Attempt to fix test on 32-bit hosts.
...
llvm-svn: 147030
2011-12-21 01:57:31 +00:00
Eli Friedman
13ec75ba42
Fix a case where Expr::isConstantInitializer would return true for an expression we can't support. In a slightly amusing twist, the case in question was already in the clang regression tests marked as a valid construct. <rdar://problem/10020074>
...
llvm-svn: 147026
2011-12-21 00:43:02 +00:00
Richard Smith
ed2974f3cf
C++ constant expression handling: eagerly instantiate static const integral data
...
members of class templates so that their values can be used in ICEs. This
required reverting r105465, to get such instantiated members to be included in
serialized ASTs.
llvm-svn: 147023
2011-12-21 00:25:33 +00:00
Fariborz Jahanian
13d08955ea
objc QOI: Don't't warn about mismatch between attributes
...
on method declaration and definition if former is in
a system header. // rdar://10580333
llvm-svn: 147020
2011-12-21 00:09:11 +00:00
Richard Smith
4f848f1dac
PR11297: Provide a better diagnostic for code which contains a
...
reasonable-looking but ill-formed for-range statement of the form:
for (expression : expression)
llvm-svn: 147006
2011-12-20 22:56:20 +00:00
Anna Zaks
5f847144d1
[analyzer] Do not invalidate arguments when the parameter's
...
type is a pointer to const. (radar://10595327)
The regions corresponding to the pointer and reference arguments to
a function get invalidated by the calls since a function call can
possibly modify the pointed to data. With this change, we are not going
to invalidate the data if the argument is a pointer to const. This
change makes the analyzer more optimistic in reporting errors.
(Support for C, C++ and Obj C)
llvm-svn: 147002
2011-12-20 22:35:30 +00:00
Fariborz Jahanian
028b9e1d0a
objc/c++: Issue diagnostic when free-standing ivar is accessed
...
in class method instead of crash. // rdar://10593227
llvm-svn: 146998
2011-12-20 22:21:08 +00:00