"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "test/SemaCXX/modules-ts.cppm" between
cfe-8.0.1.src.tar.xz and cfe-9.0.0.src.tar.xz

About: Clang is an LLVM front end for the C, C++, and Objective-C languages. Clang aims to provide a better user experience through expressive diagnostics, a high level of conformance to language standards, fast compilation, and low memory use.

modules-ts.cppm  (cfe-8.0.1.src.tar.xz):modules-ts.cppm  (cfe-9.0.0.src.tar.xz)
skipping to change at line 52 skipping to change at line 52
export struct T {} t; export struct T {} t;
#elif TEST == 3 #elif TEST == 3
int use_a = a; // expected-error {{declaration of 'a' must be imported from modu le 'foo' before it is required}} int use_a = a; // expected-error {{declaration of 'a' must be imported from modu le 'foo' before it is required}}
// expected-note@-13 {{previous}} // expected-note@-13 {{previous}}
#undef foo #undef foo
import foo; import foo;
export {} // expected-error {{export declaration cannot be empty}} export {} // expected-error {{export declaration cannot be empty}}
export { ; } export { // expected-note {{begins here}}
export { static_assert(true); } ; // expected-warning {{ISO C++20 does not permit an empty declaration to appe
ar in an export block}}
}
export { // expected-note {{begins here}}
static_assert(true); // expected-warning {{ISO C++20 does not permit a static_
assert declaration to appear in an export block}}
}
int use_b = b; int use_b = b;
int use_n = n; // FIXME: this should not be visible, because it is not exported int use_n = n; // FIXME: this should not be visible, because it is not exported
extern int n; extern int n;
static_assert(&n != p); static_assert(&n != p);
#endif #endif
#if TEST == 1 #if TEST == 1
struct S { struct S {
skipping to change at line 76 skipping to change at line 80
}; };
#endif #endif
// FIXME: Exports of declarations without external linkage are disallowed. // FIXME: Exports of declarations without external linkage are disallowed.
// Exports of declarations with non-external-linkage types are disallowed. // Exports of declarations with non-external-linkage types are disallowed.
// Cannot export within another export. This isn't precisely covered by the // Cannot export within another export. This isn't precisely covered by the
// language rules right now, but (per personal correspondence between zygoloid // language rules right now, but (per personal correspondence between zygoloid
// and gdr) is the intent. // and gdr) is the intent.
#if TEST == 1 #if TEST == 1
export { export { // expected-note {{export block begins here}}
extern "C++" { extern "C++" {
namespace NestedExport { namespace NestedExport {
export { // expected-error {{appears within another export}} export { // expected-error {{appears within another export}}
int q; int q;
} }
} }
} }
} }
#endif #endif
 End of changes. 2 change blocks. 
3 lines changed or deleted 9 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)