Christian Kamm
392c80c6e4
C++11: Fix use of >> in template arguments.
...
Change-Id: Ic99ca897e7a3b9c82cf8c5093a90bf9c88dbb0ed
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:58:34 +02:00
Christian Kamm
44c9cef30a
C++11: Make 'enum struct', enum-base and opaque enum decls work.
...
For declarations like:
enum struct Foo : long int;
Change-Id: Id813efdbc31c8d70a4b40bb0101dc33a8dd2556a
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:57:23 +02:00
Christian Kamm
8711121197
C++11: Parse alias declarations.
...
The parser no longer fails declarations like:
using Foo = std::vector<int>::iterator;
Change-Id: Ib3a552ebbe0147fa138db6448a52cdba8f9b9207
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:56:33 +02:00
Christian Kamm
9bd86e7d68
C++11: Allow brace-init-list in range-for statement.
...
Also drop the unused 'initializer' member from
RangeBasedForStatementAST.
Change-Id: I078ebbc85cafa643af4bfe62d698bf7de71360e4
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:54:50 +02:00
Christian Kamm
ecd54059d3
C++11: Add alignof() expression.
...
Change-Id: Id3fb30b9a16ea724bab0d5b05e8cbddb0064e6eb
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:53:46 +02:00
Christian Kamm
8c1a45565c
C++11: Accept ref-qualifiers in function declarators.
...
Means
void foo() const &; void bar() &&;
and the corresponding pointer-to-member declarators
now parse.
Change-Id: Idbf295bd4f51cd5d9e38efcac1940b8cc2e32fce
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:51:48 +02:00
Christian Kamm
b9f6f1bcf7
C++11: Allow uniform initialization in ctor init lists.
...
So
class C { C() : _x{12}, _y({12}) {} };
now parses correctly.
Change-Id: I4281dcb0541a86b550e74630cad6ae0a59fef1b4
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:47:49 +02:00
Christian Kamm
903ba378c2
C++11: Don't fail on = default and = delete initializers.
...
These are converted to IdExpr(SimpleName(token)) initializers.
Change-Id: I1e85c4b261ca028dc75ffe6c00e1090630c2957c
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:46:51 +02:00
Christian Kamm
0bdf1dc406
C++11: Allow brace initializers in return statements.
...
Like return {1, 2};
Change-Id: I7442da1866b0106bc075783653c95c16ebedb51a
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-19 11:46:09 +02:00
Christian Kamm
9b7d1901ba
C++11: Allow brace initializers in assignment expressions.
...
Like:
var += {1, 2};
in a function context.
Change-Id: I3936c97c4fcb6b3dcac2979e0508d422d47fddfc
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-17 15:31:40 +02:00
Christian Kamm
342709a9cc
C++11: Allow brace initializer lists in more places.
...
This allows them to be used in declarator initializers that expect
an expression list in parentheses. Like
T v({1, 2}, 3, 4);
Change-Id: I62e1ffd355ca88f7acbb8708c9b40c8310489ca3
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-17 15:16:56 +02:00
Christian Kamm
813846232b
C++11: Allow for brace initializers like T v{1, 2}.
...
And add a basic test.
Change-Id: I3b8b87d51a9da154758d17380bba5922795f675c
Reviewed-by: hjk <qthjk@ovi.com >
2012-09-17 14:47:14 +02:00
Leandro Melo
809a4ed91a
C++: Also parse static_assert as top-level declaration
...
Add some checks for C++11 flag as well.
Change-Id: Ic5ee81d72bc88a22e71b324ef01014791b833604
Reviewed-by: hjk <qthjk@ovi.com >
2012-06-05 15:03:01 +02:00
Erik Verbruggen
d679dc4d53
C++: Added tests for C++11 features.
...
Change-Id: Ifa0bc37916d3ac3a523580bec15a6685709e7810
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com >
2012-02-10 08:30:48 +01:00
Roberto Raggi
5fb624b1db
Fix semantic of C++ 11 inline namespaces.
...
Add the declaring `inline' namespace to the `using list' of its
enclosing namespace symbol. This should be enough to ensure
the correct visibility of the symbols declarated in the inlined
namespace.
Change-Id: Id4de74577c498fe439a49709a306ef0deb145988
Reviewed-by: Leandro Melo <leandro.melo@nokia.com >
2012-02-03 15:37:17 +01:00