G++ no longer defines builtins that do not begin with __builtin.
* g++.old-deja/g++.abi/bitfields.C: Update accordingly. * g++.old-deja/g++.brendand/misc13.C: Likewise. * g++.old-deja/g++.law/builtin1.C: Likewise. * g++.old-deja/g++.law/cvt2.C: Likewise. * g++.old-deja/g++.mike/net5.C: Likewise. * g++.old-deja/g++.other/builtins1.C: Likewise. * g++.old-deja/g++.other/builtins2.C: Likewise. * g++.old-deja/g++.other/builtins3.C: Likewise. * g++.old-deja/g++.other/builtins4.C: Likewise. * g++.old-deja/g++.other/inline8.C: Likewise. * g++.old-deja/g++.robertl/eb39.C: Likewise. From-SVN: r42554
This commit is contained in:
parent
0b1161fcb2
commit
f5aada2647
@ -1,3 +1,18 @@
|
||||
2001-05-24 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
G++ no longer defines builtins that do not begin with __builtin.
|
||||
* g++.old-deja/g++.abi/bitfields.C: Update accordingly.
|
||||
* g++.old-deja/g++.brendand/misc13.C: Likewise.
|
||||
* g++.old-deja/g++.law/builtin1.C: Likewise.
|
||||
* g++.old-deja/g++.law/cvt2.C: Likewise.
|
||||
* g++.old-deja/g++.mike/net5.C: Likewise.
|
||||
* g++.old-deja/g++.other/builtins1.C: Likewise.
|
||||
* g++.old-deja/g++.other/builtins2.C: Likewise.
|
||||
* g++.old-deja/g++.other/builtins3.C: Likewise.
|
||||
* g++.old-deja/g++.other/builtins4.C: Likewise.
|
||||
* g++.old-deja/g++.other/inline8.C: Likewise.
|
||||
* g++.old-deja/g++.robertl/eb39.C: Likewise.
|
||||
|
||||
2001-05-24 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* g++.old-deja/g++.pt/using1.C: Adjust.
|
||||
|
@ -55,7 +55,7 @@ check_bits (char *buf,
|
||||
#define CHECK_FIELD(AGGREGATE, FIELD, START_BIT, NUM_BITS, RVAL) \
|
||||
do { \
|
||||
AGGREGATE a__; \
|
||||
memset (& a__, 0, sizeof (a__)); \
|
||||
std::memset (& a__, 0, sizeof (a__)); \
|
||||
a__.FIELD = -1; \
|
||||
if (! check_bits ((char *) & a__, sizeof (a__), START_BIT, NUM_BITS)) \
|
||||
return RVAL; \
|
||||
|
@ -1,4 +1,5 @@
|
||||
// Origin: Mark Mitchell <mark@codesourcery.com>
|
||||
// Special g++ Options: -fno-strict-aliasing
|
||||
|
||||
#if defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
// Build don't link:
|
||||
// GROUPS passed miscellaneous-bugs
|
||||
// This should only give warnings from duplicate_decls; it should not get
|
||||
// errors from push_overloaded_decl as well.
|
||||
|
||||
namespace std {
|
||||
extern "C"
|
||||
{
|
||||
long unsigned int strlen(char*);// ERROR - warning// ERROR - warning.*
|
||||
}
|
||||
}
|
@ -8,10 +8,9 @@
|
||||
// the use of __builtin_alloca, and thus ends up being unresolved.
|
||||
// Special g++ Options:
|
||||
|
||||
extern "C" void* alloca( __SIZE_TYPE__ );
|
||||
extern "C" int printf (const char *, ...);
|
||||
|
||||
void* junk() {
|
||||
return std::alloca(10);
|
||||
return __builtin_alloca(10);
|
||||
}
|
||||
main() { printf ("PASS\n");}
|
||||
|
@ -8,8 +8,8 @@
|
||||
class cvec {
|
||||
public:
|
||||
~cvec(){ delete s; }
|
||||
cvec(const char*x) { s = new char[strlen(x)+1]; strcpy(s, x); }
|
||||
cvec(const cvec& c) { s = new char[strlen(c.s)+1]; strcpy(s, c.s); }
|
||||
cvec(const char*x) { s = new char[std::strlen(x)+1]; std::strcpy(s, x); }
|
||||
cvec(const cvec& c) { s = new char[std::strlen(c.s)+1]; std::strcpy(s, c.s); }
|
||||
operator const char*() { return s; }
|
||||
private:
|
||||
char *s;
|
||||
|
@ -1,10 +0,0 @@
|
||||
// Build don't link:
|
||||
// Special g++ Options:
|
||||
|
||||
namespace std {
|
||||
volatile void abort(); // WARNING - mismatch
|
||||
}
|
||||
|
||||
volatile void oink() {
|
||||
std::abort() ;
|
||||
} // gets bogus error -
|
@ -7,27 +7,14 @@
|
||||
namespace std
|
||||
{
|
||||
extern "C" void abort (void);
|
||||
extern "C" __SIZE_TYPE__ strlen (const char *);
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
using namespace std;
|
||||
|
||||
if (strlen ("hello") != 5)
|
||||
abort ();
|
||||
if (std::strlen ("hello") != 5)
|
||||
abort ();
|
||||
if (::__builtin_strlen ("hello") != 5)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
static __SIZE_TYPE__ ::strlen (const char *)
|
||||
{
|
||||
std::abort ();
|
||||
}
|
||||
}
|
||||
|
@ -7,8 +7,6 @@
|
||||
namespace std
|
||||
{
|
||||
extern "C" void abort (void);
|
||||
extern "C" char *strcpy (char *, const char *);
|
||||
extern "C" int memcmp (const void *, const void *, __SIZE_TYPE__);
|
||||
}
|
||||
|
||||
int main ()
|
||||
@ -16,25 +14,9 @@ int main ()
|
||||
using namespace std;
|
||||
char f[16];
|
||||
|
||||
if (strcpy (f, "hello world") != f
|
||||
|| memcmp (f, "hello world", sizeof ("hello world")))
|
||||
abort ();
|
||||
|
||||
if (std::strcpy (f, "bye world") != f
|
||||
|| memcmp (f, "bye world", sizeof ("bye world")))
|
||||
abort ();
|
||||
|
||||
if (::__builtin_strcpy (f, "hello world") != f
|
||||
|| memcmp (f, "hello world", sizeof ("hello world")))
|
||||
|| __builtin_memcmp (f, "hello world", sizeof ("hello world")))
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
static char * ::strcpy (char *, const char *)
|
||||
{
|
||||
std::abort ();
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
namespace std
|
||||
{
|
||||
extern "C" void abort (void);
|
||||
extern "C" void *alloca (__SIZE_TYPE__);
|
||||
}
|
||||
|
||||
int main ()
|
||||
@ -15,14 +14,6 @@ int main ()
|
||||
using namespace std;
|
||||
void *foo;
|
||||
|
||||
foo = alloca (32);
|
||||
if (!foo)
|
||||
abort ();
|
||||
|
||||
foo = std::alloca (32);
|
||||
if (!foo)
|
||||
abort ();
|
||||
|
||||
foo = ::__builtin_alloca (32);
|
||||
if (!foo)
|
||||
abort ();
|
||||
@ -30,10 +21,3 @@ int main ()
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
static void * ::alloca (__SIZE_TYPE__)
|
||||
{
|
||||
std::abort ();
|
||||
}
|
||||
}
|
||||
|
@ -7,21 +7,12 @@
|
||||
namespace std
|
||||
{
|
||||
extern "C" void abort (void);
|
||||
extern "C" int printf (const char *, ...);
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
using namespace std;
|
||||
|
||||
printf ("hello world\n");
|
||||
printf ("\n");
|
||||
printf ("%s\n", "hello world");
|
||||
printf ("%c", '\n');
|
||||
std::printf ("hello world\n");
|
||||
std::printf ("\n");
|
||||
std::printf ("%s\n", "hello world");
|
||||
std::printf ("%c", '\n');
|
||||
::__builtin_printf ("hello world\n");
|
||||
::__builtin_printf ("\n");
|
||||
::__builtin_printf ("%s\n", "hello world");
|
||||
@ -30,10 +21,3 @@ int main ()
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
static int ::printf (const char *, ...)
|
||||
{
|
||||
std::abort ();
|
||||
}
|
||||
}
|
||||
|
39
gcc/testsuite/g++.old-deja/g++.other/inline21.C
Normal file
39
gcc/testsuite/g++.old-deja/g++.other/inline21.C
Normal file
@ -0,0 +1,39 @@
|
||||
// Special g++ Options: -O2
|
||||
// Origin: suckfish@ihug.co.nz
|
||||
|
||||
// DECLARATIONS
|
||||
|
||||
struct Record {
|
||||
Record (int bb) :
|
||||
b (bb)
|
||||
{ }
|
||||
int extra; // Having an extra member in record is crucial.
|
||||
int b;
|
||||
};
|
||||
|
||||
struct Container {
|
||||
Record record;
|
||||
// The const on the next line is crucial.
|
||||
Container ( const Record b) : record(b) {}
|
||||
};
|
||||
|
||||
|
||||
// TEST FOR CORRECT BEHAVIOUR
|
||||
|
||||
int myArray[3];
|
||||
int * intp = myArray;
|
||||
|
||||
void use_pair (const Container & c)
|
||||
{
|
||||
*intp++ = c.record.b;
|
||||
}
|
||||
|
||||
extern "C" int printf (const char *,...);
|
||||
|
||||
int main()
|
||||
{
|
||||
use_pair (Container (1234));
|
||||
|
||||
if (myArray[0] != 1234)
|
||||
return 1;
|
||||
}
|
@ -23,23 +23,23 @@ public:
|
||||
|
||||
NAMES_ITEM::NAMES_ITEM (const NAMES_ITEM& item2)
|
||||
{
|
||||
size_t length=strlen(item2.name);
|
||||
size_t length=std::strlen(item2.name);
|
||||
|
||||
name=new char[length+1];
|
||||
memcpy(name,item2.name,length+1);
|
||||
std::memcpy(name,item2.name,length+1);
|
||||
}
|
||||
|
||||
NAMES_ITEM::NAMES_ITEM (const char* name2)
|
||||
{
|
||||
size_t length=strlen(name2);
|
||||
size_t length=std::strlen(name2);
|
||||
|
||||
name=new char[length+1];
|
||||
memcpy(name,name2,length+1);
|
||||
std::memcpy(name,name2,length+1);
|
||||
}
|
||||
|
||||
NAMES_ITEM::~NAMES_ITEM ()
|
||||
{
|
||||
if (strcmp (name, "one") != 0)
|
||||
if (std::strcmp (name, "one") != 0)
|
||||
abort ();
|
||||
|
||||
name=0;
|
||||
@ -47,12 +47,12 @@ NAMES_ITEM::~NAMES_ITEM ()
|
||||
|
||||
bool NAMES_ITEM::operator==(const NAMES_ITEM& n) const
|
||||
{
|
||||
return (strcmp(name,n.name) == 0);
|
||||
return (std::strcmp(name,n.name) == 0);
|
||||
}
|
||||
|
||||
bool operator<(const NAMES_ITEM& n1, const NAMES_ITEM& n2)
|
||||
{
|
||||
return (strcmp(n1.name,n2.name) < 0);
|
||||
return (std::strcmp(n1.name,n2.name) < 0);
|
||||
}
|
||||
|
||||
typedef map<NAMES_ITEM,size_t,less<NAMES_ITEM> > lookup_t;
|
||||
|
@ -11,7 +11,7 @@ extern bool foo2 (ostream &out, istream &in);
|
||||
bool
|
||||
foo1 (ostream &out, const char *in)
|
||||
{
|
||||
string tmp(in, strlen(in));
|
||||
string tmp(in, std::strlen(in));
|
||||
stringbuf sb (tmp);
|
||||
istream fmt (&sb);
|
||||
return foo2 (out, fmt);
|
||||
|
Loading…
Reference in New Issue
Block a user