Richard Smith
c5b0552055
Fix parsing of type-specifier-seq's. Types are syntactically allowed to be
...
defined here, but not semantically, so
new struct S {};
is always ill-formed, even if there is a struct S in scope.
We also had a couple of bugs in ParseOptionalTypeSpecifier caused by it being
under-loved (due to it only being used in a few places) so merge it into
ParseDeclarationSpecifiers with a new DeclSpecContext. To avoid regressing, this
required improving ParseDeclarationSpecifiers' diagnostics in some cases. This
also required teaching ParseSpecifierQualifierList about constexpr... which
incidentally fixes an issue where we'd allow the constexpr specifier in other
bad places.
llvm-svn: 152549
2012-03-12 07:56:15 +00:00
Bob Wilson
274d6f1777
Switch to unified syntax for VFP instructions in inline assembly.
...
<rdar://problem/11024696>
llvm-svn: 152548
2012-03-12 06:15:36 +00:00
Nick Lewycky
74655a5d67
Fix typo in comment, 'langauge' -> 'language'.
...
llvm-svn: 152547
2012-03-11 23:14:21 +00:00
Fariborz Jahanian
008dfe2fb3
objective-c modern abi rewriter: provide section pragmas for
...
statically writter metadata.
// rdar://11023490
llvm-svn: 152546
2012-03-11 19:41:56 +00:00
Benjamin Kramer
0f90695e31
Replace a hand-coded leading one counting loop with the magic from MathExtras.h.
...
llvm-svn: 152545
2012-03-11 19:32:35 +00:00
Benjamin Kramer
f6978230b8
Remove global map. This code isn't even hot.
...
llvm-svn: 152544
2012-03-11 18:12:04 +00:00
Douglas Gregor
c683e4a8e9
Document the weak-linking behavior of the availability attribute
...
llvm-svn: 152543
2012-03-11 17:21:03 +00:00
Benjamin Kramer
71b197306e
DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings.
...
llvm-svn: 152541
2012-03-11 14:56:26 +00:00
Timur Iskhodzhanov
fead7f5aa5
[ASan] Use WriteFile instead of fwrite in AsanWrite
...
llvm-svn: 152540
2012-03-11 12:45:12 +00:00
NAKAMURA Takumi
354589a663
Update library dependencies to add clangEdit on c-index-test and c-arcmt-test.
...
To link with -static -lclang, linker tries to seek not libclang.so, clang.dll nor libclang.dll.a, but libclang.a. USEDLIBS should have correct dependencies for -static.
(In contrast, USEDLIBS=libclang.so might be enough w/o -static)
FYI, cygwin build (in buildbot) is using -static, due to avoiding weirdness of extremely slower startup lag of clang.exe.
llvm-svn: 152539
2012-03-11 08:04:40 +00:00
Craig Topper
bef78fc2ee
Convert more static tables of registers used by calling convention to uint16_t to reduce space.
...
llvm-svn: 152538
2012-03-11 07:57:25 +00:00
Craig Topper
ca658c2264
Use uint16_t to store registers and opcode in static tables in the target specific backends.
...
llvm-svn: 152537
2012-03-11 07:16:55 +00:00
David Blaikie
bbafb8a745
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
...
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
2012-03-11 07:00:24 +00:00
Craig Topper
41bd30e027
Remove unused functions getArgRegs and getNumArgRegs.
...
llvm-svn: 152535
2012-03-11 06:46:40 +00:00
Stepan Dyatkovskiy
fe3b069a6a
llvm::SwitchInst
...
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default.
Added some notes relative to case iterators.
llvm-svn: 152533
2012-03-11 06:09:37 +00:00
Stepan Dyatkovskiy
97b02fc1b3
llvm::SwitchInst
...
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default.
Added some notes relative to case iterators.
llvm-svn: 152532
2012-03-11 06:09:17 +00:00
Douglas Gregor
fdd417fcee
Document the availability attribute
...
llvm-svn: 152531
2012-03-11 04:53:21 +00:00
Douglas Gregor
194ea69d62
When template argument deduction is ignoring qualifiers, perform deep
...
structural comparison of non-dependent types. Otherwise, we end up
rejecting cases where the non-dependent types don't match due to
qualifiers in, e.g., a pointee type. Fixes PR12132.
llvm-svn: 152529
2012-03-11 03:29:50 +00:00
Richard Smith
6d244d754b
cxx_status: No compiler changes are required for 'minimal support for garbage
...
collection'. Keep it in the table to match gcc's table, but mark it N/A.
llvm-svn: 152528
2012-03-11 03:06:00 +00:00
Gregory Szorc
21c9f38977
[llvm.py] Implement disassembler interface
...
It doesn't currently support the op info and symbol lookup callbacks,
but it is better than nothing.
llvm-svn: 152527
2012-03-11 02:32:56 +00:00
Douglas Gregor
f31cee6e1d
Add a missing 'template' keyword.
...
llvm-svn: 152526
2012-03-11 02:23:56 +00:00
Douglas Gregor
39b010f58a
Add a few missing 'template' keywords
...
llvm-svn: 152525
2012-03-11 02:22:41 +00:00
Craig Topper
b358499b18
Shrink and reorder some fields in MCOperandInfo to fit it in 8 bytes to reduce size of static tables.
...
llvm-svn: 152524
2012-03-11 01:57:56 +00:00
Michael J. Spencer
512cab2827
Fix warnings when building with VS11.
...
llvm-svn: 152523
2012-03-11 01:20:23 +00:00
Michael J. Spencer
914dc77dfc
Fix warnings.
...
llvm-svn: 152522
2012-03-11 00:51:01 +00:00
Jordy Rose
f80b2cced7
[analyzer] Replace a static helper with existing logic. No functionality change.
...
llvm-svn: 152521
2012-03-11 00:08:24 +00:00
Douglas Gregor
50a3cdddda
When determining whether an identifier followed by a '<' in a member
...
access expression is the start of a template-id, ignore function
templates found in the context of the entire postfix-expression. Fixes
PR11856.
llvm-svn: 152520
2012-03-10 23:52:41 +00:00
David Blaikie
631a486e6a
Fix crash & accepts-invalid for array of arrays of user defined type.
...
Test case/other help by Richard Smith.
Code review by John McCall.
llvm-svn: 152519
2012-03-10 23:40:02 +00:00
Aaron Ballman
778cf08746
Fixing a compile warning triggered in MSVC about constant truncation.
...
llvm-svn: 152518
2012-03-10 23:03:01 +00:00
Michael J. Spencer
cfa95f66a1
Make StringRef::getAsInteger work with all integer types. Before this change
...
it would fail with {,u}int64_t on x86-64 Linux.
This also removes code duplication.
llvm-svn: 152517
2012-03-10 23:02:54 +00:00
Aaron Ballman
a97fc66ef3
Updated the test so that it checks for ms-compatibility in addition to ms-extensions.
...
llvm-svn: 152516
2012-03-10 22:52:10 +00:00
Benjamin Kramer
71ff880ff9
Make helper static, so it can be inlined into its sole caller.
...
llvm-svn: 152515
2012-03-10 22:41:06 +00:00
Aaron Ballman
fa432f30d4
Adding namespace qualifiers to the visualizers and improving their behavior.
...
Patch thanks to Nikola Smiljanic
llvm-svn: 152514
2012-03-10 22:28:45 +00:00
Gregory Szorc
a8b30c5b61
[clang.py] Implement Cursor.objc_type_encoding
...
llvm-svn: 152513
2012-03-10 22:23:27 +00:00
Aaron Ballman
b4489162b6
No longer defining GNUC mode when compiling for Microsoft compatibility. This allows people's cross-platform compiler-specific macros to work properly.
...
llvm-svn: 152512
2012-03-10 22:21:14 +00:00
Douglas Gregor
cffca4a014
Clarify even further that the lambda-to-block-pointer conversion is only available in Objective-C++
...
llvm-svn: 152511
2012-03-10 22:20:11 +00:00
Gregory Szorc
0e20a09165
[clang.py] Refactor get_tu and get_cursor test helper functions into util.py
...
llvm-svn: 152510
2012-03-10 22:19:05 +00:00
Richard Smith
5731c75414
PR12225: The requirement that literal operators be namespace-scope functions
...
does not imply that such functions can't be declared at block scope.
llvm-svn: 152509
2012-03-10 22:18:57 +00:00
Gregory Szorc
11d2e18405
Revert "[llvm.py] Implement interface to enhanced disassembler"
...
Chris Lattner says the edis interface is going away. It doesn't make
sense to land something that will go away in the near future.
llvm-svn: 152508
2012-03-10 21:44:03 +00:00
Kay Tiong Khoo
57c8e7f364
*fix typo in comment; test of commit access
...
llvm-svn: 152507
2012-03-10 21:29:49 +00:00
Gregory Szorc
6174a67e04
[llvm.py] Implement interface to enhanced disassembler
...
This requires a C++ change to EDDisassembler's ctor to function properly
(the llvm::InitializeAll* functions aren't being called currently and
there is no way to call them from Python).
Code is partially tested and works well enough for initial commit. There
are probably many small bugs.
llvm-svn: 152506
2012-03-10 21:05:05 +00:00
Gregory Szorc
053354edce
[llvm.py] Make LLVMObject.__del__ work if called during __init__
...
llvm-svn: 152505
2012-03-10 21:01:14 +00:00
Benjamin Kramer
ddefa6d925
Use VersionTuple to manage macosx versions in the driver. No functionality change.
...
llvm-svn: 152504
2012-03-10 20:55:36 +00:00
Benjamin Kramer
53ba63643c
Simplify code. No functionality change.
...
llvm-svn: 152503
2012-03-10 20:38:56 +00:00
Andrew Trick
61d277f146
Move llc + target triple tests into X86
...
llvm-svn: 152502
2012-03-10 19:03:51 +00:00
Jeffrey Yasskin
9c95b19f9e
Fix moneypunct_byname algorithm to more accurately represent C locales in C++.
...
llvm-svn: 152501
2012-03-10 18:31:43 +00:00
Fariborz Jahanian
fca65102a2
objective-c modern rewriter: add __declspec(dllexport) to forward
...
declaration of class metadata when they are defined later.
llvm-svn: 152500
2012-03-10 18:25:06 +00:00
Bill Wendling
2bbb7945e7
As Duncan pointed out, pointers tend not to be in floating point format...for now.
...
llvm-svn: 152499
2012-03-10 18:20:55 +00:00
Benjamin Kramer
fee6372daa
Don't try to filecheck bitcode.
...
llvm-svn: 152498
2012-03-10 18:07:46 +00:00
Bill Wendling
0624d2a1ec
Make this transformation slightly less agressive and more correct.
...
The 'CmpInst::isFalseWhenEqual' function returns 'false' for values other than
simply equality. For instance, it returns 'false' for <= or >=. This isn't the
correct behavior for this transformation, which is checking for strict equality
and non-equality. It was causing the gcc.c-torture/execute/frame-address.c test
to fail because it would completely (and incorrectly) optimize a whole function
into a 'ret i32 0'.
llvm-svn: 152497
2012-03-10 17:56:03 +00:00