This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Added (C) to frysk-sys/frysk/CompilerVersion.java and wrapped CompilerVersion.cxx methods with "#ifdef ... #else return -1" for non gnu compiler support.


The branch, master has been updated
       via  8ef752b059d5ef9aab05f147a729452efea6afbe (commit)
       via  d4254717bf0c43cbeeda8a57794d5882a7eca924 (commit)
       via  22c8ac06d2ee31a28bdceb57e81e78de194f3337 (commit)
       via  c9151b8cf38a6a3d558ea119d4cf1fad180a4518 (commit)
       via  0ac6ddd2b5e8d1a23b9e867de0f6408cc927646e (commit)
       via  dcc3d7c8a382c04bd95f9e42e2687f8ea8ec2b56 (commit)
      from  a0deee775fc738e37ff3ccf5ecb1c774c8016c9c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 8ef752b059d5ef9aab05f147a729452efea6afbe
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Mon Jan 7 19:09:46 2008 -0500

    Added (C) to frysk-sys/frysk/CompilerVersion.java and wrapped CompilerVersion.cxx  methods with "#ifdef ... #else return -1" for non gnu compiler support.

commit d4254717bf0c43cbeeda8a57794d5882a7eca924
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Mon Jan 7 18:57:07 2008 -0500

    Updated frysk.value.TestClass

commit 22c8ac06d2ee31a28bdceb57e81e78de194f3337
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Mon Jan 7 18:54:43 2008 -0500

    Update logger, added CompilerVersionFactory to decode compiler versions.

commit c9151b8cf38a6a3d558ea119d4cf1fad180a4518
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Mon Jan 7 17:00:51 2008 -0500

    Update ChangeLog, added finest logs to Log.java

commit 0ac6ddd2b5e8d1a23b9e867de0f6408cc927646e
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Mon Jan 7 16:59:58 2008 -0500

    Clean up logs, variable names for compiler class type support.

commit dcc3d7c8a382c04bd95f9e42e2687f8ea8ec2b56
Author: Nurdin Premji <nurdin@localhost.localdomain>
Date:   Fri Jan 4 20:41:04 2008 -0500

    For Bugzilla 5518 Compiler support DWTag.CLASS_TYPE

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/debuginfo/ChangeLog               |   18 ++
 .../CompilerVersion.java}                          |   28 ++--
 .../frysk/debuginfo/CompilerVersionFactory.java    |   48 ++++
 ...nfoFrame.java => GNURedHatCompilerVersion.java} |   32 ++--
 frysk-core/frysk/debuginfo/TypeEntry.java          |  226 ++++++++++++--------
 frysk-core/frysk/pkglibdir/ChangeLog               |   12 +-
 frysk-core/frysk/pkglibdir/funit-complex-class.cxx |   20 ++
 .../frysk/pkglibdir/funit-complex-struct.cxx       |   16 ++
 .../frysk/pkglibdir/funit-inherited-struct.cxx     |   21 ++
 frysk-core/frysk/pkglibdir/funit-simple-class.cxx  |   16 ++
 frysk-core/frysk/pkglibdir/funit-simple-struct.cxx |   15 ++
 frysk-core/frysk/value/ChangeLog                   |   14 ++
 frysk-core/frysk/value/ClassType.java              |    2 +-
 frysk-core/frysk/value/TestClass.java              |   80 +++++++
 frysk-sys/frysk/ChangeLog                          |   14 +-
 .../frysk/CompilerVersion.java                     |   15 +-
 .../cni/CompilerVersion.cxx}                       |   49 +++--
 frysk-sys/frysk/junit/ChangeLog                    |    4 +-
 frysk-sys/frysk/junit/TestCase.java                |   15 ++
 frysk-sys/frysk/rsl/ChangeLog                      |    9 +
 frysk-sys/frysk/rsl/Log.java                       |   17 ++
 frysk-sys/lib/dwfl/ChangeLog                       |    7 +-
 frysk-sys/lib/dwfl/DwarfDie.java                   |   11 +
 frysk-sys/lib/dwfl/cni/DwarfDie.cxx                |   19 ++
 24 files changed, 554 insertions(+), 154 deletions(-)
 copy frysk-core/frysk/{proc/live/LinuxPPC32.java => debuginfo/CompilerVersion.java} (84%)
 create mode 100644 frysk-core/frysk/debuginfo/CompilerVersionFactory.java
 copy frysk-core/frysk/debuginfo/{VirtualDebugInfoFrame.java => GNURedHatCompilerVersion.java} (78%)
 create mode 100644 frysk-core/frysk/pkglibdir/funit-complex-class.cxx
 create mode 100644 frysk-core/frysk/pkglibdir/funit-complex-struct.cxx
 create mode 100644 frysk-core/frysk/pkglibdir/funit-inherited-struct.cxx
 create mode 100644 frysk-core/frysk/pkglibdir/funit-simple-class.cxx
 create mode 100644 frysk-core/frysk/pkglibdir/funit-simple-struct.cxx
 create mode 100644 frysk-core/frysk/value/TestClass.java
 copy frysk-core/frysk/debuginfo/ValueUavailableException.java => frysk-sys/frysk/CompilerVersion.java (89%)
 copy frysk-sys/{lib/dwfl/cni/ElfArchiveSymbol.cxx => frysk/cni/CompilerVersion.cxx} (79%)

First 500 lines of diff:
diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog
index c38d9f8..4730e4f 100644
--- a/frysk-core/frysk/debuginfo/ChangeLog
+++ b/frysk-core/frysk/debuginfo/ChangeLog
@@ -1,3 +1,21 @@
+2008-01-07  Nurdin Premji  <npremji@redhat.com>
+
+	* CompilerVersion: New.
+	* CompilerVersionFactory: New.
+	* GNURedHatCompilerVersion: New.
+	* TypeEntry: Moved compiler version decoding to the 
+*CompilerVersion classes.
+
+2008-01-04  Nurdin Premji  <npremji@redhat.com>
+
+	* TypeEntry.java: Added rsl loggers.
+	(addMembers): New.
+	(compilerSupportsClassType): New
+	(getClassType): New.
+	(getStructOrClassType): Return composite type, use addMembers, check for 
+	compiler supporting ClassType.
+	(getType): Added support for compilers supporting DWTag.CLASS_TYPE_
+
 2007-12-13  Sami Wagiaalla  <swagiaal@redhat.com>
 
 	* TypeEntry.java: Use SourceLocation instead of LineColPair.
diff --git a/frysk-core/frysk/proc/live/LinuxPPC32.java b/frysk-core/frysk/debuginfo/CompilerVersion.java
similarity index 84%
copy from frysk-core/frysk/proc/live/LinuxPPC32.java
copy to frysk-core/frysk/debuginfo/CompilerVersion.java
index 522e8aa..eb50621 100644
--- a/frysk-core/frysk/proc/live/LinuxPPC32.java
+++ b/frysk-core/frysk/debuginfo/CompilerVersion.java
@@ -1,6 +1,5 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2006 IBM Corp.
 // Copyright 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
@@ -11,11 +10,11 @@
 // WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 // General Public License for more details.
-//
+// 
 // You should have received a copy of the GNU General Public License
 // along with FRYSK; if not, write to the Free Software Foundation,
 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-//
+// 
 // In addition, as a special exception, Red Hat, Inc. gives You the
 // additional right to link the code of FRYSK with code not covered
 // under the GNU General Public License ("Non-GPL Code") and to
@@ -38,21 +37,22 @@
 // version and license this file solely under the GPL without
 // exception.
 
-package frysk.proc.live;
+package frysk.debuginfo;
 
-import frysk.isa.PPC32Registers;
+import frysk.rsl.Log;
 
-class LinuxPPC32 extends IsaPowerPC {
+public class CompilerVersion {
 
-    LinuxPPC32() {
-	//In Power32 the PC will be in Link Register
-	super(PPC32Registers.LR);
+    protected static Log fine = Log.fine(CompilerVersion.class);
+    public final String compilerString;
+    
+    CompilerVersion(String compString) {
+	this.compilerString = compString;
+	fine.log(this, "Created compilerVersion for:", compString);
     }
 
-    private static LinuxPPC32 isa;
-    static LinuxPPC32 isaSingleton () {
-	if (isa == null)
-	    isa = new LinuxPPC32 ();
-	return isa;
+    public boolean supportsClassType() {
+	return false;
     }
+
 }
diff --git a/frysk-core/frysk/debuginfo/CompilerVersionFactory.java b/frysk-core/frysk/debuginfo/CompilerVersionFactory.java
new file mode 100644
index 0000000..cd12bdd
--- /dev/null
+++ b/frysk-core/frysk/debuginfo/CompilerVersionFactory.java
@@ -0,0 +1,48 @@
+package frysk.debuginfo;
+
+import java.util.HashMap;
+import frysk.rsl.Log;
+
+public class CompilerVersionFactory {
+    private static HashMap compilerVersions = new HashMap();
+    protected static Log fine = Log.fine(CompilerVersionFactory.class);
+    protected static Log finest = Log.finest(CompilerVersionFactory.class);
+
+    public static CompilerVersion getCompilerVersion(String compiler) {
+	if (compilerVersions.containsKey(compiler))
+	    return (CompilerVersion) compilerVersions.get(compiler);
+
+	// XXX: GNU C specific.
+	fine.log("Found compiler: ", compiler);
+
+	CompilerVersion compVersion;
+
+	// String looks like: GNU C++ 4.1.2 20070925 (Red Hat 4.1.2-33)
+	//
+	if (!compiler.matches("GNU C.*\\(Red Hat \\d+\\.\\d+\\.\\d+-\\d+\\)")) {
+	    compVersion = new CompilerVersion(compiler);
+	} else {
+	    String preCompilerVersion = "(Red Hat ";
+
+	    String compilerVersion = compiler.substring(compiler
+		    .indexOf(preCompilerVersion)
+		    + preCompilerVersion.length(), compiler.lastIndexOf(')'));
+
+	    String[] versions = compilerVersion.split("\\.");
+
+	    finest.log("Version string has 3 sections");
+
+	    int version = Integer.parseInt(versions[0]);
+	    int minorVersion = Integer.parseInt(versions[1]);
+
+	    String[] minorVersions = versions[2].split("-");
+
+	    int patchLevel = Integer.parseInt(minorVersions[0]);
+	    int RHRelease = Integer.parseInt(minorVersions[1]);
+	    compVersion = new GNURedHatCompilerVersion(compiler, version,
+		    minorVersion, patchLevel, RHRelease);
+	}
+	compilerVersions.put(compiler, compVersion);
+	return compVersion;
+    }
+}
diff --git a/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java b/frysk-core/frysk/debuginfo/GNURedHatCompilerVersion.java
similarity index 78%
copy from frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java
copy to frysk-core/frysk/debuginfo/GNURedHatCompilerVersion.java
index ae3ed76..cb0ccd1 100644
--- a/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java
+++ b/frysk-core/frysk/debuginfo/GNURedHatCompilerVersion.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2007, Red Hat Inc.
+// Copyright 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -39,23 +39,25 @@
 
 package frysk.debuginfo;
 
-import java.io.PrintWriter;
-import frysk.stack.Frame;
-import frysk.stack.FrameDecorator;
+public class GNURedHatCompilerVersion extends CompilerVersion {
 
-public class VirtualDebugInfoFrame extends DebugInfoFrame {
+    private int version;
+    private int minorVersion;
+    private int patchLevel;
+    private int RHRelease;
 
-    /**
-     * Create a frame, outer to OUTER, and decorating frame.
-     */
-    protected VirtualDebugInfoFrame(FrameDecorator inner, Frame decorated) {
-	super(inner, decorated);
-    }
+    public GNURedHatCompilerVersion(String string, int version,
+	    int minorVersion, int patchLevel, int RHRelease) {
+	super(string);
 
-    public void toPrint(PrintWriter writer, boolean printParameters,
-		 boolean fullpath) {
-	super.toPrint(writer, printParameters, fullpath);
-	writer.print(" [inline]");
+	this.version = version;
+	this.minorVersion = minorVersion;
+	this.patchLevel = patchLevel;
+	this.RHRelease = RHRelease;
     }
 
+    public boolean supportsClassType() {
+	return version >= 4 && minorVersion >= 1 && patchLevel >= 2
+		&& RHRelease >= 37;
+    }
 }
diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java
index 9d9ed3b..3ad41da 100644
--- a/frysk-core/frysk/debuginfo/TypeEntry.java
+++ b/frysk-core/frysk/debuginfo/TypeEntry.java
@@ -40,10 +40,13 @@
 package frysk.debuginfo;
 
 import frysk.isa.ISA;
+import frysk.rsl.Log;
 import frysk.scopes.SourceLocation;
 import frysk.value.Access;
 import frysk.value.ArrayType;
 import frysk.value.CharType;
+import frysk.value.ClassType;
+import frysk.value.CompositeType;
 import frysk.value.ConstType;
 import frysk.value.EnumType;
 import frysk.value.FloatingPointType;
@@ -52,6 +55,7 @@ import frysk.value.GccStructOrClassType;
 import frysk.value.PointerType;
 import frysk.value.ReferenceType;
 import frysk.value.SignedType;
+import frysk.value.StructType;
 import frysk.value.Type;
 import frysk.value.TypeDef;
 import frysk.value.UnionType;
@@ -74,6 +78,8 @@ import lib.dwfl.DwarfDie;
 
 public class TypeEntry
 {
+    static protected Log fine = Log.fine(TypeEntry.class);
+    static protected Log finest = Log.finest(TypeEntry.class);
     private final ByteOrder byteorder;
     private final HashMap dieHash;
 
@@ -118,7 +124,98 @@ public class TypeEntry
 	arrayType = new ArrayType(type, elementCount * typeSize, dims);
 	return arrayType;
     }
+    
+    
+    private void addMembers(DwarfDie classDie, CompositeType classType) {
+	LocationExpression locationExpression = null;
+	
+	for (DwarfDie member = classDie.getChild();
+	member != null;
+	member = member.getSibling()) {
+    
+    dumpDie("member=", member);
 
+    boolean staticMember = false;
+    long offset;
+    try {
+	offset = member.getDataMemberLocation();
+    } catch (DwAttributeNotFoundException de) {
+	offset = 0; // union
+	staticMember = true;
+	if(member.isDeclaration()){
+	    locationExpression = new LocationExpression(member.getDefinition());
+	}else{
+	    locationExpression = new LocationExpression(member);
+	}
+
+    }
+    
+    SourceLocation sourceLocation;
+    try{
+	sourceLocation = new SourceLocation(member.getDeclFile(), member.getDeclLine(), member.getDeclColumn());
+    }catch(DwAttributeNotFoundException e){
+	sourceLocation = SourceLocation.UNKNOWN;
+    }
+    
+    Access access = null;
+    switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) {
+    case DwAccess.PUBLIC_: access = Access.PUBLIC; break;
+    case DwAccess.PROTECTED_: access = Access.PROTECTED; break;
+    case DwAccess.PRIVATE_: access = Access.PRIVATE; break;
+    }
+    
+    if (member.getTag() == DwTag.SUBPROGRAM) {
+	Value v = getSubprogramValue(member);
+	if(hasArtifitialParameter(member)){
+	    classType.addMember(member.getName(), sourceLocation, v.getType(), offset, access);
+	}else{
+	    classType.addStaticMember(locationExpression, member.getName(), sourceLocation, v.getType(), offset, access);
+	}
+	continue;
+    }
+    
+//    DwarfDie memberDieType = member.getUltimateType();
+//    if (memberDieType == null)
+//	continue;
+
+    Type memberType = getType (member.getType());
+    if (memberType instanceof UnknownType == false) {
+	// System V ABI Supplements discuss bit field layout
+	int bitSize = member
+	.getAttrConstant(DwAt.BIT_SIZE);
+	if (bitSize != -1) {
+	    int bitOffset = member
+	    .getAttrConstant(DwAt.BIT_OFFSET);
+	    if(staticMember){
+		classType.addStaticBitFieldMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access,
+			    bitOffset, bitSize);
+	    }else{
+		classType.addBitFieldMember(member.getName(), sourceLocation, memberType, offset, access,
+			    bitOffset, bitSize);
+	    }
+	}
+	else{
+	    if(staticMember){
+		classType.addStaticMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access);
+	    }else{
+		classType.addMember(member.getName(), sourceLocation, memberType, offset, access);
+	    }
+	    
+	}
+	continue;
+    }
+    else{
+	if(staticMember){
+	    classType.addStaticMember(locationExpression, member.getName(), sourceLocation, new UnknownType(member
+		.getName()), offset, access);
+	}else{
+	    classType.addMember(member.getName(), sourceLocation, new UnknownType(member
+			.getName()), offset, access);
+	}
+    }
+}
+    }
+    
     /**
      * @param classDie
      *                A struct die
@@ -126,100 +223,43 @@ public class TypeEntry
      *                Name of the struct
      * @return GccStructOrClassType for the struct
      */
-    public GccStructOrClassType getGccStructOrClassType(DwarfDie classDie, String name) {
-	
-	LocationExpression locationExpression = null;
+    public CompositeType getGccStructOrClassType(DwarfDie classDie, String name) {
+	dumpDie("structOrClassDie=", classDie);
 
-	dumpDie("classDie=", classDie);
+	CompositeType type;
 
-	GccStructOrClassType classType = new GccStructOrClassType(name, getByteSize(classDie));
-	
-	for (DwarfDie member = classDie.getChild();
-		member != null;
-		member = member.getSibling()) {
-	    
-	    dumpDie("member=", member);
-	
-	    boolean staticMember = false;
-	    long offset;
-	    try {
-		offset = member.getDataMemberLocation();
-	    } catch (DwAttributeNotFoundException de) {
-		offset = 0; // union
-		staticMember = true;
-		if(member.isDeclaration()){
-		    locationExpression = new LocationExpression(member.getDefinition());
-		}else{
-		    locationExpression = new LocationExpression(member);
-		}
+	String compiler = classDie.getProducer();
+	boolean supportsClassType = CompilerVersionFactory.getCompilerVersion(compiler).supportsClassType();
+	fine.log("Compiler support determined as:" + supportsClassType);
 
-	    }
-	    
-	    SourceLocation sourceLocation;
-	    try{
-		sourceLocation = new SourceLocation(member.getDeclFile(), member.getDeclLine(), member.getDeclColumn());
-	    }catch(DwAttributeNotFoundException e){
-		sourceLocation = SourceLocation.UNKNOWN;
-	    }
-	    
-	    Access access = null;
-	    switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) {
-	    case DwAccess.PUBLIC_: access = Access.PUBLIC; break;
-	    case DwAccess.PROTECTED_: access = Access.PROTECTED; break;
-	    case DwAccess.PRIVATE_: access = Access.PRIVATE; break;
-	    }
-	    
-	    if (member.getTag() == DwTag.SUBPROGRAM) {
-		Value v = getSubprogramValue(member);
-		if(hasArtifitialParameter(member)){
-		    classType.addMember(member.getName(), sourceLocation, v.getType(), offset, access);
-		}else{
-		    classType.addStaticMember(locationExpression, member.getName(), sourceLocation, v.getType(), offset, access);
-		}
-		continue;
-	    }
-	    
-//	    DwarfDie memberDieType = member.getUltimateType();
-//	    if (memberDieType == null)
-//		continue;
+	/*
+	 * If the compiler supported class types and this was a class, it would
+	 * have been detected as a ClassType. Since it was not, it must be a
+	 * struct
+	 */
+	if (supportsClassType)
+	    type = new StructType(name, getByteSize(classDie));
+	else
+	    type = new GccStructOrClassType(name, getByteSize(classDie));
 
-	    Type memberType = getType (member.getType());
-	    if (memberType instanceof UnknownType == false) {
-		// System V ABI Supplements discuss bit field layout
-		int bitSize = member
-		.getAttrConstant(DwAt.BIT_SIZE);
-		if (bitSize != -1) {
-		    int bitOffset = member
-		    .getAttrConstant(DwAt.BIT_OFFSET);
-		    if(staticMember){
-			classType.addStaticBitFieldMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access,
-				    bitOffset, bitSize);
-		    }else{
-			classType.addBitFieldMember(member.getName(), sourceLocation, memberType, offset, access,
-				    bitOffset, bitSize);
-		    }
-		}
-		else{
-		    if(staticMember){
-			classType.addStaticMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access);
-		    }else{
-			classType.addMember(member.getName(), sourceLocation, memberType, offset, access);
-		    }
-		    
-		}
-		continue;
-	    }
-	    else{
-		if(staticMember){
-		    classType.addStaticMember(locationExpression, member.getName(), sourceLocation, new UnknownType(member
-			.getName()), offset, access);
-		}else{
-		    classType.addMember(member.getName(), sourceLocation, new UnknownType(member
-				.getName()), offset, access);
-		}
-	    }
-	}
+	addMembers(classDie, type);
 
+	return type;
+    }
+    
+    /**
+     * 
+     * @param classDie
+     * 		A class die
+     * @param name 
+     * 		Name of the class
+     * @return ClassType for the class.
+     */
+    public ClassType getClassType(DwarfDie classDie, String name) {
+	dumpDie("classDie=", classDie);
+	
+	ClassType classType = new ClassType(name, getByteSize(classDie));
+	addMembers(classDie, classType);
 	return classType;
     }
 
@@ -403,11 +443,17 @@ public class TypeEntry
 	    break;
 	}
 	case DwTag.STRUCTURE_TYPE_: {
-	    GccStructOrClassType classType = 
+	    CompositeType classType = 
 		getGccStructOrClassType(type, typeDie.getName());
 	    returnType = classType;
 	    break;
 	}
+	case DwTag.CLASS_TYPE_: {
+	    ClassType classType =
+		getClassType(type, typeDie.getName());
+	    returnType = classType;
+	    break;
+	}
 	case DwTag.ENUMERATION_TYPE_: {
 	    DwarfDie subrange = type.getChild();
 	    EnumType enumType = new EnumType(typeDie.getName(),
diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog
index 21191c8..4b1f933 100644
--- a/frysk-core/frysk/pkglibdir/ChangeLog
+++ b/frysk-core/frysk/pkglibdir/ChangeLog
@@ -1,7 +1,13 @@
-2008-01-02  Tim Moore  <timoore@redhat.com>
+2007-01-04  Nurdin Premji  <npremji@redhat.com>
+	* funit-complex-class.cxx: New
+	* funit-complex-struct.cxx: New
+	* funit-inherited-struct.cxx: New
+	* funit-simple-class.cxx: New
+	* funit-simple-struct.cxx: New
 
-	* funit-structmember.c: New test with structure member and function
-	that share a name.
+2008-01-02  Tim Moore  <timoore@redhat.com>
+        * funit-structmember.c: New test with structure member and function


hooks/post-receive
--
frysk system monitor/debugger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]