blob: e1a2b7865b56c95d2533792c2261eef17fca6759 [file] [log] [blame]
// { dg-options "-fdiagnostics-show-caret" }
/* Test of accessors that return references. */
class t1
{
public:
int& get_color () { return m_color; }
int& get_shape () { return m_shape; }
private:
int m_color;
protected:
int m_shape;
};
int test_access_t1_color (t1 &ref)
{
return ref.m_color; // { dg-error ".int t1::m_color. is private within this context" }
/* { dg-begin-multiline-output "" }
return ref.m_color;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "declared private here" "" { target *-*-* } 12 }
/* { dg-begin-multiline-output "" }
int m_color;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "field .int t1::m_color. can be accessed via .int& t1::get_color\\(\\)." "" { target *-*-* } .-12 }
/* { dg-begin-multiline-output "" }
return ref.m_color;
^~~~~~~
get_color()
{ dg-end-multiline-output "" } */
}
int test_access_t1_shape (t1 &ref)
{
return ref.m_shape; // { dg-error ".int t1::m_shape. is protected within this context" }
/* { dg-begin-multiline-output "" }
return ref.m_shape;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "declared protected here" "" { target *-*-* } 15 }
/* { dg-begin-multiline-output "" }
int m_shape;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "field .int t1::m_shape. can be accessed via .int& t1::get_shape\\(\\)." "" { target *-*-* } .-12 }
/* { dg-begin-multiline-output "" }
return ref.m_shape;
^~~~~~~
get_shape()
{ dg-end-multiline-output "" } */
}
int test_deref_t1_color (t1 *ptr)
{
return ptr->m_color; // { dg-error ".int t1::m_color. is private within this context" }
/* { dg-begin-multiline-output "" }
return ptr->m_color;
^~~~~~~
{ dg-end-multiline-output "" } */
/* { dg-begin-multiline-output "" }
int m_color;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "field .int t1::m_color. can be accessed via .int& t1::get_color\\(\\)." "" { target *-*-* } .-12 }
/* { dg-begin-multiline-output "" }
return ptr->m_color;
^~~~~~~
get_color()
{ dg-end-multiline-output "" } */
}
int test_deref_t1_shape (t1 *ptr)
{
return ptr->m_shape; // { dg-error ".int t1::m_shape. is protected within this context" }
/* { dg-begin-multiline-output "" }
return ptr->m_shape;
^~~~~~~
{ dg-end-multiline-output "" } */
/* { dg-begin-multiline-output "" }
int m_shape;
^~~~~~~
{ dg-end-multiline-output "" } */
// { dg-message "field .int t1::m_shape. can be accessed via .int& t1::get_shape\\(\\)." "" { target *-*-* } .-12 }
/* { dg-begin-multiline-output "" }
return ptr->m_shape;
^~~~~~~
get_shape()
{ dg-end-multiline-output "" } */
}